Python學習之__slots__屬性
阿新 • • 發佈:2017-05-15
self. 但是 name obj import print blog 網站 usr
在廖老師的網站上學習的__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__屬性