小甲鱼 新手学python 闭包中疑惑求大佬解惑
嵌套函数中:def funA():
x = 880
def funB():
print(x)
return funB
funA()
此处返回是函数funA的地址?
funA()()
返回是 880, 这里不懂,求大佬解答 funA() 返回 funB 也就是 funB 地址
注:
funB() 有括号执行函数,有返回值,则返回值
funB 没有括号,返回地址(对象)
funA() 有括号执行该函数,该函数返回 funB
funA()() 有两个括号,先从前面看(如上),funA() = funB,那么 funA()() = funB() 它的运行流程是这样子的:1、运行funA(),funB这里没有括号,表示的是funB这个变量,所以地址是funB的。2、你把return理解为“代替”,那就是funA()最终运行的结果就是funB,然后funA()()就等于funB(),运行funB()就打印了880这个数。 wiselin 发表于 2022-3-25 10:37
它的运行流程是这样子的:1、运行funA(),funB这里没有括号,表示的是funB这个变量,所以地址是funB的。2、 ...
感谢解答 傻眼貓咪 发表于 2022-3-25 10:35
funA() 返回 funB 也就是 funB 地址
注:
感谢答疑
页:
[1]