可以解释下 这两段区别是啥吗
def funOut():def funIn():
print('宾果!你成功访问到我啦!')
return funIn()
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn
第一个函数返回的结果就只是打印这一句话,而第二个函数返回的是内部函数的内存地址。
也就是说,第一个函数返回的,你没办法再加工了;而第二个函数返回的东西你还可以再加工。
函数带上 括号是调用这个函数,返回这个函数的执行结果,而函数不带括号就是指这整个函数体
就对你这而言吧,第一个代码:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn()
带上了括号,当你调用 funOut() 函数时候,返回的是 funIn() 函数运行的结果,也就等于你先调用了 funOut() 函数,然后再调用了 funIn() 函数
而 funIn() 函数里没有设置 return 返回值 那么 Python 默认返回了 None,则调用最后返回结果是 None
而第二个代码:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn
没带上括号,那么返回的就是 funIn 这整个函数体,当你调用 funOut() 函数时候,返回的结果是funIn 这整个函数体
也就是可以看成 你如果 x = funOut() 调用 这个函数 因为函数返回的还是一个函数,那么x就等于返回的那个函数 即: x = funIn
这个时候你可以继续调用 x 函数,实际上就是在调用 funIn 函数
Twilight6 发表于 2020-6-26 16:17
函数带上 括号是调用这个函数,返回这个函数的执行结果,而函数不带括号就是指这整个函数体
就对你 ...
我明白了 哥哥你真棒
页:
[1]