美文网首页
__slots__语法研究

__slots__语法研究

作者: Blaise2 | 来源:发表于2017-02-25 12:30 被阅读0次
class Child(object):
    def __init__(self):
        self.name = 'zhou'

    def fun2(self):
        print 'fun1'

class Student(Child):
    __slots__ = ('name', 'id')
    id = 1

    def __init__(self):
        print 'init student'
        self.name = 'junjie'

stu = Student()

slots 限制了类的属性,我测试了一下,slots是限制了类里的成员变量,没有限制类里的类方法和类变量。
还有一点是,如果只在子类使用slots那么父类和子类的成员变量则不会被限制。就是如果slots只用在子类是无效的。

后面我执行了super(Child, self)后,slots里的限制生效了。
所以我猜测必须执行了父类的solts,该方法才会有效。

相关文章

  • __slots__语法研究

    slots 限制了类的属性,我测试了一下,slots是限制了类里的成员变量,没有限制类里的类方法和类变量。还有一点...

  • _slots_简介2-使用

    __slots__作用 类成员变量描述符 __slots__是一个元祖 类的实例只能拥有__slots__中定义的...

  • Python限制属性

    __slots__

  • Python进阶话题杂谈(四)__slots__

    __slots__是Python类中的一个非常重要的优化手段。使用了__slots__的类,其在内存占用、实例化以...

  • __slots__

    现在我们终于明白了,动态语言与静态语言的不同 动态语言:可以在运行的过程中,修改代码 静态语言:编译时已经确定好代...

  • __slots__

    __slots__变量,来限制class实例能添加的属性 例:

  • __slots__

    一个场景 我们发现,所有继承自object类的类的对象都有一个__dict__属性,这事实上耗费了大量内存(尤其是...

  • __slots__

    class Student(object):slots=('name','age') 用slots来定义只允许对S...

  • xlwt3安装及缩进问题

    1、程序运行报错:ValueError: '__init__' in __slots__ conflicts wi...

  • python中常用的__xxx__特殊变量

    1、__getattr__ 2、__setattr__ 3、__slots__ slots详解 4、__str__...

网友评论

      本文标题:__slots__语法研究

      本文链接:https://www.haomeiwen.com/subject/wbmgwttx.html