函数带括号和不带括号带区别

本文深入探讨了Python中函数作为返回值的概念,解析了return函数名()与return函数的区别。通过实例代码,阐述了如何根据条件返回不同的函数,以及函数对象的使用方式。

return 函数名() 和return函数 区别
def hi(name=“yasoob”):
def greet():
return “now you are in the greet() function”

def welcome():
    return "now you are in the welcome() function"

if name == "yasoob":
    return greet
else:
    return welcome

a = hi()
print(a)
输入结果为:
<function greet at 0x7f2143c01500> # greet函数内存地址信息

#上面清晰地展示了a现在指向到hi()函数中的greet()函数
#现在试试这个

print(a())
#输出: now you are in the greet() function
再次看看这个代码。在 if/else 语句中我们返回 greet 和 welcome,而不是 greet() 和 welcome()。为什么那样?这是因为当你把一对小括号放在后面,这个函数就会执行;然而如果你不放括号在它后面,那它可以被到处传递,并且可以赋值给别的变量而不去执行它。 你明白了吗?让我再稍微多解释点细节。

当我们写下 a = hi(),hi() 会被执行,而由于 name 参数默认是 yasoob,所以函数 greet 被返回了。如果我们把语句改为 a = hi(name = “ali”),那么 welcome 函数将被返回。我们还可以打印出 hi()(),这会输出 now you are in the greet() function。

转载网址地址:http://www.runoob.com/w3cnote/python-func-decorators.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值