gpt4 book ai didi

Python - 禁止在子类中创建 __dict__ 类变量

转载 作者:太空狗 更新时间:2023-10-30 01:03:40 32 4
gpt4 key购买 nike

我在开发的游戏中遇到了一个棘手的问题。我正在使用 Pygame 来开发它。我碰巧是那些从不使用 default__dict__ 对象变量的开发人员之一;我总是定义 __slots__ 来阐明对象可以拥有的变量(我有一个类方法可以读取槽以确定配置文件中所需的变量)。

无论如何,我刚刚意识到这种努力在我的某些类(class)中不起作用;他们仍然有一个 __dict__ 变量,并且可以分配任意属性,即使他们明确定义了他们的 __slots__。我认为这是因为它们继承自 pygame.sprite.Sprite,它有一个 __dict__。如果是这种情况,我该如何抑制这个字典的创建? (虽然我应该明确定义 __slots__ )或者我可能弄错了原因?感谢您的任何见解;很难通过搜索找到有关此特定问题的信息。

最佳答案

抑制任意属性和它们的 __dict__ 容器的唯一方法是按原样使用 __slots__ 并继承自具有相同功能的类。具有 __dict__ 的类的子类将始终具有 __dict__。解决它的唯一方法是不继承此类(但是,例如,改用 composition。)

关于Python - 禁止在子类中创建 __dict__ 类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6314205/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com