zoukankan      html  css  js  c++  java
  • Python学习之__slots__属性

    廖老师的网站上学习的__slots__属性
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2017/5/14 17:16
    # @Author  : Aries
    # @Site    : 
    # @File    : 使用_slots_.py
    # @Software: PyCharm
    
    from types import MethodType
    #
    # class Student(object):
    #     pass
    # s=Student()
    # s.name="zb"
    # print(s.name)
    # def setAge(self,age):
    #     self.age=age
    # s.setAge=MethodType(setAge,s)##这里给实例绑定方法的做法值得关注,这就是动态语言的魅力,给某个实例添加某个方法,但是
    # #却对其他的实例没有影响
    # ss=Student()
    # print(hasattr(ss,"setAge"))
    # print(hasattr(s,"setAge"))
    # Student.setAge=setAge#给Student类绑定方法,这样使得每个Student类的实例都有setAge方法
    # print(hasattr(ss,"setAge"))
    # print(hasattr(s,"setAge"))
    
    
    '''
    以上是对实例和类绑定相应的方法,但是,如果我们想要对类的属性进行限制的时候,就要用到_slots_属性了。
    如下
    '''
    class Student (object):
        __slots__=("name","age","sex")
        pass
    s=Student()
    s.name="zs"
    s.age=44
    s.sex="F"
    class graduate(Student):
        pass
    g=graduate()
    g.sex="M"
    g.age=10
    g.name="ls"
    g.score=55#注意,这里的score属性并没有在父类的__slots__属性中,但是,在子类中还是可以添加绑定的,也就是说,__slots__属性是不继承的


  • 相关阅读:
    VMware6.0-vCenter的安装准备及安装
    VeeamBackup9.5安装与配置
    VeeamOne(Free Edition 9.5 )-安装与配置
    UIDatePicker
    UIImagePicker照片选择器
    UIImageView
    UILabel
    UIScrollView 期本使用方法
    UISegment
    UISlide
  • 原文地址:https://www.cnblogs.com/big-bozi/p/6854170.html
Copyright © 2011-2022 走看看