0

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

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

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

任何帮助将不胜感激!

4

1 回答 1

5

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

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

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

于 2013-01-31T17:16:02.450 回答