在Python中,定义函数时括号内的参数列表是函数签名的一部分,而函数调用时是否带括号决定了调用方式的不同。
-
不带括号:当你不希望立即执行函数,而是希望将函数本身(作为一个值)作为另一个函数的参数或者返回值,或者将其作为一个变量赋值时,你可以不在函数名后面加括号。
def greet(): return "Hello" greet_func = greet # 不带括号 print(greet_func()) # 输出 'Hello'
-
带括号:当你希望立即执行函数,并获取其返回值或执行其副作用时,你应该在函数名后面加上括号。
def greet(): print("Hello") greet() # 输出 'Hello' 并执行函数中的打印语句
如果函数不需要任何参数,你可以选择是否使用括号。但是,一旦你的函数定义包含了参数列表,你就必须在调用时使用括号。
def greet(name): return f"Hello, {name}!" greet_message = greet # 不带括号,因为这里不是要执行函数 print(greet_message("Alice")) # 输出 'Hello, Alice!',这里需要括号来传参