gpt4 book ai didi

python - 为什么我的函数无法访问封闭函数中的变量?

转载 作者:行者123 更新时间:2023-12-01 06:16:43 24 4
gpt4 key购买 nike

我了解 LEGB 规则。但是,对函数是否具有对封闭函数中定义的变量的读取访问权限的简单测试似乎实际上不起作用。即:

#!/usr/bin/env python2.4
'''Simple test of Python scoping rules'''

def myfunction():
print 'Hope this works: '+myvariable

def enclosing():
myvariable = 'ooh this worked'
myfunction()

if __name__ == '__main__':
enclosing()

返回:

NameError: global name 'myvariable' is not defined

我做错了什么吗?除了 LEGB 决议顺序之外,还有更多内容吗?

最佳答案

你可以...

如果你这样做:

#!/usr/bin/env python2.4
'''Simple test of Python scoping rules'''

def enclosing():
myvariable = 'ooh this worked'

def myfunction():
print 'Hope this works: ' + myvariable

myfunction()

if __name__ == '__main__':
enclosing()

...否则你的函数不知道在哪里查看(确实如此,但它查看全局变量,这就是你收到错误的原因)(如果可以的话,将其作为参数传递不要将函数定义为嵌套函数)

关于python - 为什么我的函数无法访问封闭函数中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com