当前位置: 代码迷 >> python >> Python-从另一个类覆盖变量?
  详细解决方案

Python-从另一个类覆盖变量?

热度:68   发布时间:2023-07-16 10:15:48.0

我不知道的简单问题:我有一个(示例)文件:

class foo:
var = 1
def bar(self):
    print(self.var)

if __name__ == "__main__":
    foo().bar()

和file2与此:

from testing import foo

class foo2:
    def bar2(self):
        foo().var = 2
        foo().bar()


foo2().bar2()

它返回1,所以这里没有覆盖发生。

我无法弄清楚如何实际覆盖导入的类实例的变量。 我检查和 ,但是这没有帮助我。 抱歉,问这样一个简单的问题,谢谢。

它已被覆盖,但是您将立即丢弃该对象。 foo().var = 2创建一个匿名foo对象,并将其var分配给2 问题是您没有保留对刚刚创建的foo对象的引用 然后, foo().bar()创建一个新的foo对象 ,该对象的 var == 1 (就像所有新的foo对象一样,因为这是您的类所做的事情),并且还在此新的 foo对象上调用bar()成员函数,它将打印1到控制台。

尝试以下方法:

def bar2(self):
    foo_obj = foo()
    foo_obj.var = 2
    foo_obj.bar()

在执行foo().bar() ,您正在创建第二个实例。

尝试这个:

  test = foo() test.var = 2 test.bar() # foo().var = 2 # foo().bar()