提问者:小点点

如何在创建me实例的实例中调用方法


为了更好地理解问题,下面举一个小例子:

假设我创建了类Driver的实例“driver1”。 在该类的构造函数中,创建了类Passenger的实例“Passenger”。 类Passenger中有一个方法need_to_pee()。 我如何意识到,创建类Passenger的这个实例的实例的方法“passenger_has_to_pee”被调用(在本例中是driver1)?

我想回答这种愚蠢的问题,但我是编程界的新手。。。

多谢!

class Passenger:

    def __init__(self,name):
        self.name = name

        #callbackMethod
    def need_to_pee(self):
        #run the method  "passenger_has_to_pee" of the instance who created an Instance of me

class Driver:

    def __init__(self, name):
        self.name = name
        self.passenger = Passenger("Nick")

    def passenger_has_to_pee(self):

        self.drive_to_toilett()

    def drive_to_toilett(self):
        print("")


driver1 = Driver("John")

共1个答案

匿名用户

passenger的实例应该包括对driver的引用(或者更一般地说,无论什么对象提供passenger_has_to_pee方法,无论其类型如何)。

class Passenger:

    def __init__(self,name, driver):
        self.name = name
        self.driver = driver

    def need_to_pee(self):
        self.driver.passenger_has_to_pee()

class Driver:

    def __init__(self, name):
        self.name = name
        self.passenger = Passenger("Nick", self)

    def passenger_has_to_pee(self):

        self.drive_to_toilett()

    def drive_to_toilett(self):
        print("")