有人可以解释一下下面的代码 TickGenerator 继承自 Observer 的对象和方法,为什么我们都需要observer.init?
class TickGenerator(Observer):
def __init__(self):
Observer.__init__(self)
self.price = 1000
有人可以解释一下下面的代码 TickGenerator 继承自 Observer 的对象和方法,为什么我们都需要observer.init?
class TickGenerator(Observer):
def __init__(self):
Observer.__init__(self)
self.price = 1000
我猜你来自一种自动调用父类构造函数的语言。
在 Python 中,如果重写该__init__
方法,则不会调用父类构造函数,除非您显式调用它。
在 Python 3 之前,它曾经被称为:
def __init__(self, *args, **kwargs):
super(TickGenerator, self).__init__(*args, **kwargs)
新[super()][1]
语法(PEP-3135)只是:
def __init__(self, *args, **kwargs):
super().method(*args, **kwargs)
因为除了当前类( TickGenerator)中正在做的事情之外,程序员还需要完成Observer类。__init__
__init__
如果你不打电话给观察者。初始化如下:
class TickGenerator(Observer):
def __init__(self):
self.price = 1000
这意味着您覆盖 TickGenerator。init方法和观察者。init不会被自动调用。