关于内部函数的问题
>>> def funX():x = 5
def funY():
nonlocal x
x *= 3
return x
return funY
>>> funX()()
15
问一下,funX()()前面()对应的是外面funX里的5,而后面的()对应的是里面funY里的3,是这么理解吗?请各位大神指教,谢谢!!! funx()返回的是funy
funx()()就相当于返回funy()
你可以看一下这个例子{:5_91:} {:5_91:}
也可以换到列表理解
a= [,,]
此时a=
a就等于1 Teagle 发表于 2017-10-5 20:06
funx()返回的是funy
funx()()就相当于返回funy()
你可以看一下这个例子
>>> def funX(x):
def funY(y):
return x * y
return funY
>>>funX(8)(5)
40
那这个怎么解释?funX(8)(5) funX(8)此时给x赋值了8,函数返回的是funY
funY(5)此时给y赋值了5,函数返回的是x*y
即8*5 Teagle 发表于 2017-10-5 20:26
funX(8)此时给x赋值了8,函数返回的是funY
funY(5)此时给y赋值了5,函数返回的是x*y
非常感谢,前一个问题也完全明白了,谢谢!!! 694061755 发表于 2017-10-5 20:29
非常感谢,前一个问题也完全明白了,谢谢!!!
客气了,这种思想,在字典+lamba里面经常会见到
贼好用{:5_91:}{:5_91:}
页:
[1]