`
simohayha
  • 浏览: 1389417 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

关于类中slots属性的用法的疑问

阅读更多
__slots__保存着实例变量的列表,并且在实例中保留空间以确定它们在实例中。一旦使用了__slots__,其它的实例变量就不能被赋值了。

文档中是这么说的:
引用

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


上面的代码就不会报异常,想问一下这是什么原因?
分享到:
评论
3 楼 向左走向右走 2012-08-19  
c.e=9
好像没有e这个属性
2 楼 simohayha 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   
1 楼 limodou 2007-02-28  
我想是B中有__dict__,因为它没有使用__slots__,所以C把B中的__dict__给继承下来了。

相关推荐

    Python中__slots__属性介绍与基本使用方法

    在Python中,每个类都有实例属性。默认情况下Python用一个字典来保存一个对象的实例属性。...下面这篇文章主要给大家介绍了关于Python中__slots__属性与基本使用方法的相关资料,需要的朋友可以参考下

    Python中的__SLOTS__属性使用示例

    python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots__后,实例就只会含有__slots__里有的属性名。 # coding: utf-8 class A(object): x = 1 def __init__(self): ...

    python3中使用__slots__限定实例属性操作分析

    主要介绍了python3中使用__slots__限定实例属性操作,结合实例形式分析了Python3定义类实例绑定属性,以及使用__slots__限定实例属性的相关操作技巧,需要的朋友可以参考下

    深入浅析Vue中的slots/scoped slots

    主要介绍了Vue中的slots/scoped slots,本文实例代码相结合的形式给大家介绍了slots的工作原理,需要的朋友可以参考下

    通过实例了解python__slots__使用方法

    python是一个动态语言,可以支持我们在运行时动态的给类、对象添加属性或者方法;但是如果我们想要限制可以添加的属性或方法该怎么办呢? 二、__slots__ python允许在定义class的时候,定义一个特殊的__slots__变量...

    python中__slots__用法实例

    本文实例讲述了python中__slots__的用法。分享给大家供大家参考。具体分析如下: 定义__slots__ 后,可以再实例上分配的属性名称将被限制为指定的名称。否则将引发AttributeError,这种限制可以阻止其他人向现有的...

    在Python中使用__slots__方法的详细教程

    主要介绍了在Python中使用__slots__方法的详细教程,__slots__方法是Python的一个重要内置类方法,代码基于Python2.x版本,需要的朋友可以参考下

    vue Render中slots的使用的实例代码

    本文介绍了vue Render中slots的使用的实例代码,有需要了解vue Render中slots用法的朋友可参考。希望此文章对各位有所帮助。 render 中 slot 的一般默认使用方式如下: this.$slots.default 对用 template的的使用...

    Content Slots

    NULL 博文链接:https://kirenenko04.iteye.com/blog/2096946

    Python类中的魔法方法之 __slots__原理解析

    主要介绍了Python类中的魔法方法之 __slots__详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    CPU插槽有多少种,详细介绍Slots、Sockets、Slocket

    CPU插槽有多少种 详细介绍Slots、Sockets、Slocket

    python面向对象day03.txt

    类内的 __slots__ 列表属性 class Student: __slots__ = ['name', 'score'] 类的文档字符串 类内的 __doc__属性绑定文档字符串 继承 / 派生 object 类派生出所有的类 所有的类都直接或间接的继承自object类 ...

    python使用__slots__让你的代码更加节省内存

    前言 ...本文主要介绍了关于python使用__slots__让你的代码更加节省内存的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 现在来说说python中dict为什么比list浪费内存

    SLOTS-娱乐场游戏开发(Unity 3D)

    策略游戏,unity3D的源码,可以使用该框架进行娱乐场游戏的制作。 完整的U3D资源 可以直接做单机游戏制作 也可以当作网络游戏的前端基础框架。 良好的前端代码整合。 良好的基础框架。 适合二次开发。 也可以换皮...

Global site tag (gtag.js) - Google Analytics