如何在 Python 中的类使用 __slots__ 时获取属性的名称



当我在 Python 中定义一个新样式的类时,我可以使用包含事物字典的 __dict__ -Attribute 来获取定义的属性(名称和值)。

我想在我的类及其子类中使用插槽,因为我将创建数十万个实例并希望节省一些内存。但是,使用 __slots__ 的类不会有 __dict__ -Attribute,因此我无法以这种方式反射性地访问它们的值。

有没有另一种方法,更可取的方法可以保留为此类定义的属性的顺序?

任何帮助将不胜感激!

您应该使用 dir() 内置函数列出对象的成员,而不是直接访问__dict____slots__

实例__dict__将仅列出直接在实例上设置的属性,而dir()还将列出该类的类和基础的属性(包括方法)。它还将列出定义为插槽的任何内容。

您可以使用inspect模块来帮助您过滤dir()的输出;例如,如果您对方法不感兴趣,inspect.ismethod()可以提供帮助。

相关内容

  • 没有找到相关文章

最新更新