Доступ к методу другого класса в python - PullRequest
0 голосов
/ 19 февраля 2020

Допустим, у меня есть два класса таким образом:

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

как получить доступ к foo() из Class2, если экземпляр Class2 создан в Class1, а Class1 само инициируется в другом классе?

Другими словами, диалоговое окно (Class2) должно обновить список с Class1.

ОБНОВЛЕНИЕ

Изначально у меня был экземпляр Class0 в __name__ == '__main__'. Class0 создает экземпляр Class1, тогда я могу получить доступ к экземпляру с Class1 по Class2, но мне нужно создать экземпляр Class0 для некоторой функции main(), которая запрещает мне доступ к Class1 методы.

1 Ответ

2 голосов
/ 19 февраля 2020

Правильная терминология помогает ... Вы не хотите обращаться к «методу Class1», но к «методу экземпляра Class1» - это означает, что вам нужно передать экземпляр Class1 вашему экземпляру Class2:

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() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...