美文网首页
python下__slots__属性使用

python下__slots__属性使用

作者: 不懒狮Blaise | 来源:发表于2017-06-09 11:16 被阅读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,该方法才会有效。

相关文章

  • python下__slots__属性使用

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

  • Python>面向对象高级编程

    1. __slots__ Python里能够随便给实例(instance)增加属性,为了达到限制属性的目的,可以...

  • 魔术方法、特殊方法

    __slots__ 默认情况下Python用一个字典来保存一个对象的实例属性,字典浪费了很多内存。Python不能...

  • python学习-属性绑定;使用__slots__

    正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动...

  • 类的__slots__属性

    为什么有__slots__属性? 默认情况下,python对象队象的每个实例(instance)都会有一个字典来存...

  • Python学习笔记09-面向对象高级编程

    __slots__属性 在python中class被实例化后仍然可以绑定新属性和方法,这就是动态语言的特性。 注意...

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

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

  • 浅析 Python __slots__

    上一篇翻译了一篇Python中使用__slots__达到节省内存的方法,今天就看一下Python内部是怎么实现__...

  • Python - __slots__属性详解

    简介 __slots__允许我们声明并限定类成员,并拒绝类创建__dict__和__weakref__属性以节约内...

  • python __slots__ 限制属性

    Python 是动态语言,允许我们动态的增加属性和方法 同样也有办法限制属性的动态绑定 如上所示可以规定 clas...

网友评论

      本文标题:python下__slots__属性使用

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