📜  Python –调用带括号或不带括号的函数(1)

📅  最后修改于: 2023-12-03 15:34:09.510000             🧑  作者: Mango

Python –调用带括号或不带括号的函数

在 Python 语言中,函数调用时可以不带括号。但不同类型的函数需要注意是否带括号,有时不带括号也会导致语法错误。

1. 带括号或不带括号
1.1 不带括号

如果函数没有参数,可以使用不带括号的方式调用。

# 定义函数
def say_hello():
    print("Hello!")

# 调用函数
say_hello
# 输出:<function __main__.say_hello()>

# 使用不带括号的方式调用函数,其实是返回函数对象本身,没有执行函数。
# 可以使用 __name__ 属性获取函数名称,仍然是返回函数名称对应的字符串。
say_hello.__name__
# 输出:'say_hello'
1.2 带括号

如果函数有参数,应该使用带括号的方式调用。

# 定义函数
def say_hello(name):
    print("Hello, " + name + "!")

# 调用函数
say_hello('Tom')
# 输出:'Hello, Tom!'
2. 函数传递

Python 中函数可以传递,可以将函数作为参数传入另外一个函数中。

# 定义函数
def say_hello(name):
    print("Hello, " + name + "!")

# 定义函数,接收两个参数,第一个参数是函数对象,第二个参数是函数对象的参数。
def run_say_hello(func, name):
    func(name)

# 调用函数,将 say_hello 函数作为参数传入,并且传入 name 参数。
run_say_hello(say_hello, 'Tom')
# 输出:'Hello, Tom!'
3. 带括号和不带括号的区别

带括号和不带括号的区别在于是否执行函数。不带括号的方式只是返回函数对象本身,而带括号的方式会执行函数并返回函数的返回值。

# 定义函数
def plus_one(num):
    return num + 1

# 不带括号的方式返回函数对象本身
print(plus_one)  # 输出:<function plus_one at 0x109b0ac80>

# 带括号的方式执行函数并返回函数的返回值
print(plus_one(1))  # 输出:2
4. 总结

在 Python 中,可以不带括号调用不带参数的函数,但不同类型的函数需要注意是否带括号,有时不带括号也会导致语法错误。带括号和不带括号的区别在于是否执行函数,不带括号的方式只是返回函数对象本身,而带括号的方式会执行函数并返回函数的返回值。函数可以传递,可以将函数作为参数传入另外一个函数中。