【发布时间】:2020-02-04 15:02:15
【问题描述】:
我有这个派生自 pygame.Rect 的 Button 类:
class Button(pg.Rect):
def __init__(self, left, top, width, height, char):
super().__init__(left, top, width, height)
self.char = char
def draw_rect(window):
pg.draw.rect(window, pg.Color("red"), "rectobject")
pg.draw.rect 将 Rect 对象作为第三个参数。所以我想知道 super() 方法是否实例化了父类的对象,如果是的话,如何引用它(因为我们使用 self 作为类)。 我知道这是一个微不足道的问题,但我对这些东西在 Python 中的工作方式很感兴趣。提前致谢!
【问题讨论】:
-
这里只有一个对象,它是父类和子类的实例。
super().__init__()调用执行对象成为功能性Rect所需的初始化(不是实例化),__init__()的其余部分执行对象成为功能性Button所需的初始化。 -
@jasonharper 解释一下,非常感谢。
标签: python oop object inheritance