【问题标题】:Is it possible to create a python object which does not have either a __slots__ nor a __dict__?是否可以创建一个既没有 __slots__ 也没有 __dict__ 的 python 对象?
【发布时间】:2019-01-19 17:32:49
【问题描述】:

是否可以创建一个没有__slots____dict__ 的python 对象?

【问题讨论】:

  • 您想限制对班级成员的访问吗?如果是这样,并且如果你坚持使用 python,那么你就是 SOL。

标签: python python-3.x slots


【解决方案1】:

正如SO 中指出的,用 C 定义的 python 类没有 __dict__ 属性。所以是的,这是可能的,这就是你如何获得没有它的内置类,例如str

除此之外...如果您查看data model__dict__ 用于保存用户定义的模块、类和函数的命名空间。因此,即使您定义了一个继承自没有该属性的内置类的新类,您也会获得该属性。 (如str)

>>> class ob(str):
...    pass
... 
>>> o = ob()
>>> o.__dict__
{}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    相关资源
    最近更新 更多