1. 程式人生 > >python第五十一課——__slots

python第五十一課——__slots

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