【发布时间】:2019-01-19 17:32:49
【问题描述】:
是否可以创建一个没有__slots__ 和__dict__ 的python 对象?
【问题讨论】:
-
您想限制对班级成员的访问吗?如果是这样,并且如果你坚持使用 python,那么你就是 SOL。
标签: python python-3.x slots
是否可以创建一个没有__slots__ 和__dict__ 的python 对象?
【问题讨论】:
标签: python python-3.x slots
正如SO 中指出的,用 C 定义的 python 类没有 __dict__ 属性。所以是的,这是可能的,这就是你如何获得没有它的内置类,例如str。
除此之外...如果您查看data model,__dict__ 用于保存用户定义的模块、类和函数的命名空间。因此,即使您定义了一个继承自没有该属性的内置类的新类,您也会获得该属性。 (如str)
>>> class ob(str):
... pass
...
>>> o = ob()
>>> o.__dict__
{}
【讨论】: