我想不通的简单问题:
我有一个(示例)文件:
class foo:
var = 1
def bar(self):
print(self.var)
if __name__ == "__main__":
foo().bar()
文件2:
from testing import foo
class foo2:
def bar2(self):
foo().var = 2
foo().bar()
foo2().bar2()
它返回1,所以这里没有覆盖
我不知道如何覆盖导入的类实例的变量。我检查了this和this,但这对我没有帮助。
很抱歉问这么简单的问题,提前谢谢
Tags:
它正在被覆盖,但您将立即丢弃该对象
foo().var = 2
创建一个匿名foo
对象,并将其var
分配给2
。问题是您没有保留对刚刚创建的foo
对象的引用。然后,foo().bar()
创建一个新的foo
对象,这个对象有var == 1
(就像所有的新的foo
对象一样,因为这是你的类所做的),还调用这个新的foo
对象上的bar()
成员函数,这个对象将1
打印到控制台请尝试以下操作:
当您执行
foo().bar()
时,您正在创建第二个实例试试这个:
相关问题 更多 >
编程相关推荐