Python 嵌套作用域
我完全理解Python中不同作用域的概念,但我不能清楚地理解这段代码,所以如果有人能向我解释一下,我会很高兴,第18行的返回是什么意思?例如,它不应该是Python 嵌套作用域,python,Python,我完全理解Python中不同作用域的概念,但我不能清楚地理解这段代码,所以如果有人能向我解释一下,我会很高兴,第18行的返回是什么意思?例如,它不应该是returng()?g在这里是什么意思?它是一个变量吗?输出为0x15b43b0处的z=函数g,这意味着什么 最后一件事,最后一行中的z()表示什么?没有名为z的函数 def f(x): def g(): x='abc' print 'x=',x def h(): z=x
returng()
?g在这里是什么意思?它是一个变量吗?输出为0x15b43b0处的z=函数g,这意味着什么
最后一件事,最后一行中的z()表示什么?没有名为z的函数
def f(x):
def g():
x='abc'
print 'x=',x
def h():
z=x
print 'z=',z
x=x+1
print 'x=',x
h()
g()
print 'x=',x
return g
x=3
z=f(x)
print 'x=',x
print 'z=',z
z()
g
是用def
定义的函数名g()
调用函数并给出结果,而g
是函数对象本身的名称(即引用)
是的,有一个功能名为“z”。它等于调用f(x)
返回的函数,即使用argx
调用的函数f。这是函数g,与返回g的行一致
除了作用域之外,您可能还需要检查高阶函数和闭包概念。g
是使用def
定义的函数的名称g()
调用函数并给出结果,而g
是函数对象本身的名称(即引用)
是的,有一个功能名为“z”。它等于调用f(x)
返回的函数,即使用argx
调用的函数f。这是函数g,与返回g的行一致
除了作用域之外,您可能还需要检查高阶函数和闭包概念
第18行的返回是什么意思
它返回函数对象g
本身
例如,它不应该是returng()吗
不一定。传递函数是完全可以接受的,因为它们只是Python中的对象。returng
和returng()
都是有效的,它们的含义不同
g在这里是什么意思?它是一个变量吗
g
是绑定到函数对象的名称,调用函数对象时会打印x=abc
,然后返回None
。是的,g
是一个变量(它是一个局部变量)
输出为0x15b43b0处的z=函数g,这意味着什么
这意味着名称z
绑定到内存位置0x15b43b0处名为g
的函数。(提示:它实际上是绑定到内部作用域中名称g
的同一个函数对象)
最后一件事,最后一行中的z()表示什么
这意味着调用名称z
绑定到的对象。i、 e.它调用f
返回的函数
没有称为z的函数
这里没有\uuu name\uuu
属性等于z
的函数。但是名称z
仍然可以绑定到函数对象。请记住,对象可以有多个名称(或者根本没有名称)
第18行的返回是什么意思
它返回函数对象g
本身
例如,它不应该是returng()吗
不一定。传递函数是完全可以接受的,因为它们只是Python中的对象。returng
和returng()
都是有效的,它们的含义不同
g在这里是什么意思?它是一个变量吗
g
是绑定到函数对象的名称,调用函数对象时会打印x=abc
,然后返回None
。是的,g
是一个变量(它是一个局部变量)
输出为0x15b43b0处的z=函数g,这意味着什么
这意味着名称z
绑定到内存位置0x15b43b0处名为g
的函数。(提示:它实际上是绑定到内部作用域中名称g
的同一个函数对象)
最后一件事,最后一行中的z()表示什么
这意味着调用名称z
绑定到的对象。i、 e.它调用f
返回的函数
没有称为z的函数
这里没有\uuu name\uuu
属性等于z
的函数。但是名称z
仍然可以绑定到函数对象。请记住,对象可以有多个名称(或者根本没有名称) 函数f
返回函数g
的值,因此f
返回函数。在主代码中,该函数存储在z
中,因此z
实际上是一个函数,可以调用。函数f
返回函数g
的值,这是一个函数,因此f
返回一个函数。在主代码中,该函数存储在z
中,因此z
实际上是一个函数,可以调用。