William01 发表于 2024-8-19 17:24:54

__slots__, 字典, 为什么看不到第二组代码的字典?

在B站学到了第65讲,我的问题是,为什么第二组代码无法像第一组代码那样看到它的字典?


第一组代码:
class C:
    def __init__(self, x):
      self.x = x

      
c = C(250)
c.x
250
c.__dict__
{'x': 250}
c.y = 520
c.__dict__
{'x': 250, 'y': 520}第二组代码:
class C:
    __slots__ = ["x", "y"]
    def __init__(self, x):
      self.x = x

      
c = C(250)
c.x
250
c.y = 520
c.y
520
c.__dict__
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
    c.__dict__
AttributeError: 'C' object has no attribute '__dict__'. Did you mean: '__dir__'?








小甲鱼的二师兄 发表于 2024-8-19 18:19:54

因为用了 __slots__,就不会有 __dict__

William01 发表于 2024-8-19 19:13:28

小甲鱼的二师兄 发表于 2024-8-19 18:19
因为用了 __slots__,就不会有 __dict__

好的,非常感谢
页: [1]
查看完整版本: __slots__, 字典, 为什么看不到第二组代码的字典?