浏览 5503 次
锁定老帖子 主题:关于类中slots属性的用法的疑问
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-28
文档中是这么说的: 引用 This class variable can be assigned a string, iterable, or sequence of strings with variable names used by instances. If defined in a new-style class, __slots__ reserves space for the declared variables and prevents the automatic creation of __dict__ and __weakref__ for each instance 也就是说 class C(object): __slots__='b' def __init__(self): self.b=67 c=C() c.e=9 #这里就会报异常 我有个问题,请看下面的代码 class B(object): a=23 class C(B): __slots__='b' def __init__(self): self.b=67 c=C() c.e=9 上面的代码就不会报异常,想问一下这是什么原因? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-28
我想是B中有__dict__,因为它没有使用__slots__,所以C把B中的__dict__给继承下来了。
|
|
返回顶楼 | |
发表时间:2007-02-28
limodou 写道 我想是B中有__dict__,因为它没有使用__slots__,所以C把B中的__dict__给继承下来了。
谢谢你了,应该就是你说的这样了,代码这样写就会抛异常了 class B(object): __slots__='a' a=23 class C(B): __slots__='b' def __init__(self): self.b=67 c=C() c.e=9 |
|
返回顶楼 | |