zoukankan      html  css  js  c++  java
  • python3(二十六)slots

    """  """
    __author__ = 'shaozhiqi'
    
    
    # python是动态语言,所以定义类后,我们可以动态的给类绑定属性和方法,上一节都都与接触
    class Student(object):
        pass
    
    
    s = Student()
    s.name = 'shaozhiqi'
    print(s.name)  # shaozhiqi
    
    
    # 定义一个方法,绑定到s对象上,不会影响别的实例
    def set_age(self, age):
        self.age = age
    
    
    from types import MethodType
    
    s.set_age = MethodType(set_age, s)
    s.set_age(25)
    print(s.age)  # 25
    
    # 给类绑定方法
    s1 = Student()
    # s1.set_age(26)  # error
    # print(s1.age) # error
    Student.set_age = set_age
    s2 = Student()
    s2.set_age(30)
    print(s2.age)  # 30
    
    
    # -----------slots---------------------------------------
    class Student(object):
        __slots__ = ('name', 'age')  # 用tuple定义允许绑定的属性名称
    
    
    ss = Student()
    ss.name = 'shaozhiqi'
    # ss.score = '99'  # error   不允许添加score属性
    
    # __slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用
  • 相关阅读:
    小程序使用字体图标-阿里版
    vue项目安装vux
    JS日期相减得到天数
    vue的Vuex
    ES6的Promise
    根据坐标拖动(简单)
    JSP 第三周作业
    JSP第二次作业(2)
    第二次JSP作业
    JSP 第一次作业
  • 原文地址:https://www.cnblogs.com/shaozhiqi/p/11550464.html
Copyright © 2011-2022 走看看