小编Mic*_*fer的帖子

使用槽时,为什么 dir(type) 没有 __dict__ 属性?

我正在尝试了解插槽。因此,我编写了一个包含两个类的小脚本,一个使用插槽,一个不使用插槽。

class A:
    def __init__(self, name):
        self.name = name

    def getName(self):
        return self.name

class C:
    __slots__ = "name"

    def __init__(self, name):
        self.name = name

    def getName(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

dir()当我在类型A为 on 的对象上使用on 类型时A,该属性__dict__将按预期出现在结果列表中。

dir(A)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'getName']

dir(A("test"))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__gt__', …
Run Code Online (Sandbox Code Playgroud)

python python-3.6

8
推荐指数
1
解决办法
287
查看次数

标签 统计

python ×1

python-3.6 ×1