python第五十一課——__slots
阿新 • • 發佈:2019-03-09
error class -- pass ... person 代碼 動態添加 舉例
2.__slots__:
作用:限制對象隨意的動態添加屬性
舉例:
class Demo:
__slots__ = (‘name‘,‘age‘,‘height‘,‘weight‘)
#實例化Demo對象
d = Demo()
#動態為d添加屬性
d.name = ‘abc‘
d.age = 12
#可以動態添加的屬性為:(‘name‘,‘age‘,‘height‘,‘weight‘)
#而sex不再範圍內,所以執行代碼報錯了 --> AttributeError
# d.sex = ‘男‘
print(d.name,d.age)
# print(d.sex)
演示__slots__屬性的使用:
class Person:__slots__ = (‘name‘,‘age‘,‘height‘,‘weight‘) pass #實例化Person對象 p=Person() #動態為對象添加屬性 p.name=‘tom‘ p.age=18 print(p.name,p.age) ‘‘‘ 以下代碼有問題:AttributeError... ‘‘‘ print(p.__dict__) ‘‘‘ 嘗試為p對象動態添加sex屬性,但是sex並不是_slots_元組對象範圍內的內容, 所以不被允許,報錯:AttributeErro ‘‘‘ p.sex=‘男‘ print(p.sex) p.height=180.0 print(p.height)
python第五十一課——__slots