Python-覆盖另一个类中的变量?

Python-覆盖另一个类中的变量?,python,class,variables,Python,Class,Variables,我想不出的简单问题是: 我有一个示例文件,其中包括: class foo: var = 1 def bar(self): print(self.var) if __name__ == "__main__": foo().bar() from testing import foo class foo2: def bar2(self): foo().var = 2 foo().bar() foo2().bar2() 和文件2: cl

我想不出的简单问题是: 我有一个示例文件,其中包括:

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

if __name__ == "__main__":
    foo().bar()
from testing import foo

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


foo2().bar2()
和文件2:

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

if __name__ == "__main__":
    foo().bar()
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时,您正在创建第二个实例

试试这个:


foo是一个类,foo是一个实例。你似乎混淆了这些概念。可能是重复的,但我在文件2中创建了一个实例,不是吗?工作代码会发生什么变化?该死,我刚回到python,foo、foo和f1=foo之间的差异总是让我困惑。谢谢另外一个问题:在某些情况下,我所做的惊人之举是否有用?