访问python中另一个类的方法

2024-10-01 02:23:22 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个这样的课程:

class Class1(ParentClass1):
    def __init__(self):
        super(Class1, self).__init__()
        c2 = Class2()

    def foo(self):
        pass

class Class2(ParentClass2):
    def __init__(self):
        super(Class2, self).__init__()

    def bar(self):
        foo() # from Class1

如果在Class1中创建了Class2的实例,而Class1本身在另一个类中启动,如何从Class2访问foo()

换句话说,对话框(Class2)必须从Class1更新列表

更新

最初,我在__name__ == '__main__'中有一个Class0实例Class0创建Class1的实例,然后我可以通过Class2访问Class1的实例,但是我需要在一些main()函数上创建Class0的实例,这不允许我访问Class1方法


Tags: 实例selffooinitmaindefpassclass
1条回答
网友
1楼 · 发布于 2024-10-01 02:23:22

恰当的术语有助于。。。您不想访问“类的方法”,而是“类的实例的方法”——这意味着您需要将类的实例传递给类的实例2:

class Class1(ParentClass1):
    def __init__(self):
        super(Class1, self).__init__()
        self.c2 = Class2(self)
        self.c2.bar()

    def foo(self):
        print("foo")

class Class2(ParentClass2):
    def __init__(self, c1):
        super(Class2, self).__init__()
        self.c1 = c1

    def bar(self):
        self.c1.foo() 

相关问题 更多 >