📅  最后修改于: 2023-12-03 15:34:09.510000             🧑  作者: Mango
在 Python 语言中,函数调用时可以不带括号。但不同类型的函数需要注意是否带括号,有时不带括号也会导致语法错误。
如果函数没有参数,可以使用不带括号的方式调用。
# 定义函数
def say_hello():
print("Hello!")
# 调用函数
say_hello
# 输出:<function __main__.say_hello()>
# 使用不带括号的方式调用函数,其实是返回函数对象本身,没有执行函数。
# 可以使用 __name__ 属性获取函数名称,仍然是返回函数名称对应的字符串。
say_hello.__name__
# 输出:'say_hello'
如果函数有参数,应该使用带括号的方式调用。
# 定义函数
def say_hello(name):
print("Hello, " + name + "!")
# 调用函数
say_hello('Tom')
# 输出:'Hello, Tom!'
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!'
带括号和不带括号的区别在于是否执行函数。不带括号的方式只是返回函数对象本身,而带括号的方式会执行函数并返回函数的返回值。
# 定义函数
def plus_one(num):
return num + 1
# 不带括号的方式返回函数对象本身
print(plus_one) # 输出:<function plus_one at 0x109b0ac80>
# 带括号的方式执行函数并返回函数的返回值
print(plus_one(1)) # 输出:2
在 Python 中,可以不带括号调用不带参数的函数,但不同类型的函数需要注意是否带括号,有时不带括号也会导致语法错误。带括号和不带括号的区别在于是否执行函数,不带括号的方式只是返回函数对象本身,而带括号的方式会执行函数并返回函数的返回值。函数可以传递,可以将函数作为参数传入另外一个函数中。