python - __init__ 的用途是什么?

标签 python class initialization

<分区>

我是 python 的新手,我正在阅读一本关于使用 pygame 创建游戏的书。我在书中看到了这段代码。我不明白为什么 Sprite.__init__(self) 是必要的。我已经运行了这段注释掉的代码,它以相同的方式运行。

class Creep(Sprite):

    def __init__(   
            self, screen, img_filename, init_position, 
            init_direction, speed)

        Sprite.__init__(self)

        self.screen = screen
        self.speed = speed
        self.base_image = pygame.image.load(img_filename).convert_alpha()
        self.image = self.base_image

有人知道为什么会出现这种情况以及为什么人们调用 init 吗?

最佳答案

这是调用父类(super class)的初始化方法。据推测,Sprite 会执行一些您在子类中也需要的初始化,而在 Python 中您需要显式调用它。

但是,通常情况下,您会通过调用 super 来完成此操作:

super(Creep, self).__init__()

关于python - __init__ 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16314694/

相关文章:

python - 二维输入的 Keras 模型

java - 在 Java 方法中传递和使用 Class

python - 如何从动态导入的类中调用方法

ios - 使用 map() 从字典数组(即 JSON 数组)初始化数组内联

Java 客户端-服务器流初始化

python - 从大文件(~2.5GB)读取并存储到 python 列表时出现 MemoryError

python - Django 返回无效的 ajax 响应

python - 在 Python 中将类文件对象添加到 Zip 文件

c# - 在另一个对象中分配和调用对象属性

ios - 如何正确初始化类