Python 如果内部函数已经有同名的变量,如何从内部函数访问封闭函数中的非局部变量
我需要找到从Python 如果内部函数已经有同名的变量,如何从内部函数访问封闭函数中的非局部变量,python,Python,我需要找到从内部函数\u Nonlocal()引用变量x=“Nonlocal”的方法。可能是我引用globals()['x']的方式,但我需要你的帮助 请注意:我不能评论或删除x=“Local”,以编写非本地x x=“全局” def封闭函数(): x=“非本地” def内部_函数_全局() x=“本地” 打印(globals()['x'])#调用全局a def内部函数非局部() x=“Local”#您可以添加一个方法来获取非本地值: x = "Global" def enc
内部函数\u Nonlocal()
引用变量x=“Nonlocal”
的方法。可能是我引用globals()['x']的方式,但我需要你的帮助
请注意:我不能评论或删除x=“Local”
,以编写非本地x
x=“全局”
def封闭函数():
x=“非本地”
def内部_函数_全局()
x=“本地”
打印(globals()['x'])#调用全局a
def内部函数非局部()
x=“Local”#您可以添加一个方法来获取非本地值:
x = "Global"
def enclosing_funcion():
x = "Nonlocal"
def non_local():
return x
def inner_function_global():
x = "Local"
print(globals()['x']) # Call the global a
def inner_function_nonlocal():
x = "Local" # <- This line can NOT be commented!!!
print(non_local()) # <- What should I specify here in order to print x which is nonlocal?
inner_function_global()
inner_function_nonlocal()
if __name__ == '__main__':
enclosing_funcion()
您可以添加另一个内部函数,包含非局部x
/返回x
,并调用它吗?不,我不能这样做,Jason!非常感谢您的及时帮助,托马斯和杰森!无论如何,我们可以结束这个问题,除非有任何方法可以以类似的方式引用globals()['x']
x = "Global"
def enclosing_funcion():
x = "Nonlocal"
def non_local():
return x
def inner_function_global():
x = "Local"
print(globals()['x']) # Call the global a
def inner_function_nonlocal():
x = "Local" # <- This line can NOT be commented!!!
print(non_local()) # <- What should I specify here in order to print x which is nonlocal?
inner_function_global()
inner_function_nonlocal()
if __name__ == '__main__':
enclosing_funcion()
Global
Nonlocal