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

dpi*_*h40 5 python pygame

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

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

Tho*_*ers 6

压缩任意属性及其__dict__容器的唯一方法是按__slots__原样使用,并从执行相同操作的类继承.具有a的类的子类__dict__将始终具有__dict__.绕过它的唯一方法是不从该类继承(但是,例如,改为使用组合.)