首页 > 代码库 > Python学习之__slots__属性
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__属性是不继承的
Python学习之__slots__属性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。