为了更好地理解问题,下面举一个小例子:
假设我创建了类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")
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("")