为什么在python中self被用作某个方法的第二个参数?
我不熟悉Python中的面向对象编程。我一直在尝试学习python的pygame模块 我已经看到,在OOP中,我们总是将为什么在python中self被用作某个方法的第二个参数?,python,python-3.x,Python,Python 3.x,我不熟悉Python中的面向对象编程。我一直在尝试学习python的pygame模块 我已经看到,在OOP中,我们总是将self构造函数作为第一个参数传递,以便将对象绑定到方法 但在这里: class Player(pygame.sprite.Sprite): def __init__(self): super(Player, self).__init__() self.surf = pygame.Surface((75, 25))
self
构造函数作为第一个参数传递,以便将对象绑定到方法
但在这里:
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.surf = pygame.Surface((75, 25))
self.surf.fill((255, 255, 255))
self.rect = self.surf.get_rect()`
在第三行中,您可以看到他们使用super方法调用sprite模块的
\uuuu init\uuuu
方法。但是为什么在这个场景中,self
被用作第二个参数而不是第一个参数呢?这就是super
的工作原理
请参见此处的文档:
第一个参数是类类型-在您的例子中是Player
,第二个参数是您正在处理的对象-通常是self
,即类的当前实例
请注意,您不需要编写此代码,只需指定:
super().__init__()
在处理当前实例和当前类时也是一样。你要问的是,为什么这个参数在一个函数中处于第二个位置,而在另一个函数中处于第一个位置,这毫无意义。
super().__init__()