|
发表于 2020-7-4 20:06:02
|
显示全部楼层
本楼为最佳答案
本帖最后由 Twilight6 于 2020-7-4 20:09 编辑
这里主要区别在于 reuturn 第一个代码是返回 内嵌函数 funIn() 返回结果,而第二个函数是 return 返回 funIn 函数
第一个代码:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn()
funOut()
函数名带上括号是 调用,函数名不带括号是代表这整个函数体,而这里调用 funOut() 的时候
因为函数设置的是 funIn() 带括号,也就是 funIn() 返回的结果,而funIn没有设置return 那么 默认返回 None
所以 第一个代码 返回的是 None
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn
funOut()()
第二个代码,当你 单独调用函数时候,funOut() 一个括号时候,因为返回的是 funIn 不带括号是个函数整体, 那么就可以把代码看成这样:
def funIn():
print('宾果!你成功访问到我啦!')
funIn # <-- funOunt() 的结果就是这个,然后再加个 () 才是调用
然后加上第二个括号也就成了调用 funIn() 函数
|
|