我想从类变量中引用一个类属性,但它给了我错误'self is not defined'class Test: def __init__(self, val): self.val = val data = self.val def main(self): print(self.data)
1 回答
![?](http://img1.sycdn.imooc.com/5458471300017f3702200220-100-100.jpg)
元芳怎么了
TA贡献1798条经验 获得超7个赞
当您说data = self.valoutside__init__时,您正在定义一个类变量,而不是一个实例变量。此行影响类型测试的所有对象。但是,self 在此范围内不被识别。
如果你想val更新这个类的所有实例,
class Test:
data = None
def __init__(self, val):
self.val = val
Test.data = self.val
在这种情况下,
test1 = Test(1)
print(test1.data) # prints 1
print(Test.data) # prints 1
test2 = Test(2)
print(test1.data) # prints 2
print(test2.data) # prints 2
print(Test.data) # prints 2
添加回答
举报
0/150
提交
取消