【发布时间】:2020-09-03 11:39:41
【问题描述】:
这是我的python代码:
import numpy
class test:
def __init__(self,):
print(numpy.__version__)
if False:
numpy = None
if __name__=='__main__':
print(numpy.__version__)
T = test()
当我运行这段代码时,解释器给我一个错误提示:
UnboundLocalError: local variable 'numpy' referenced before assignment
看起来,在执行numpy = None之前,导入的模块“numpy”已经被覆盖,而没有numpy变量。
我的问题是解释器在初始化一个类(不是对象)时到底做了什么?
【问题讨论】:
-
你为什么要分配
numpy = None?这让 Python 认为numpy是一个局部变量。 -
如果您的函数包含对变量的赋值,则默认情况下该变量是函数的局部变量。
标签: python