看下面这段简单的代码:
class A(object):
numbers = [1, 2, 3]
numberscopy = numbers[:]
print(*(a for a in numberscopy))
print(*(a for a in numberscopy if a in numbers))
我在类中定义了numbers
变量。然后,我可以使用它来做其他事情,比如制作一个副本,迭代它,并打印它的内容。
但是使用for
-if
语句的最后一行使用NameError: global name 'numbers' is not defined
失败。不是numberscopy
,只是numbers
。
我在python 2.7.14+ (导入了print_function
)和3.7.0上都进行了测试,结果相同。
这一切为什么要发生?它是这样工作的吗?
https://stackoverflow.com/questions/56118321
复制相似问题