python中對(duì)象的屬性支持增刪改查
p1 = Ql_Person('小花')
p2 = Ql_Person('小紅')
查:對(duì)象.屬性 或者 getattr(對(duì)象,屬性名: str)
- print(p1.name) # 屬性不存在的時(shí)候,會(huì)報(bào)錯(cuò)
- print(getattr(p1, 'name1', None)) # 屬性不存在的時(shí)候,若給屬性賦類值,就返回默認(rèn)值,否則報(bào)錯(cuò),當(dāng)不確定屬性值的時(shí)候,就這樣使用
print('='*20, '查', '='*20)
增/改
- 對(duì)象.屬性 - 當(dāng)屬性不存在的時(shí)候增加屬性,當(dāng)屬性存在的時(shí)候修改屬性
- setattr(對(duì)象, 屬性名, 值)
若要約束當(dāng)前類的對(duì)象有哪些屬性,避免錯(cuò)誤添加屬性
slots = ('name', 'color') ,寫在init上面,但是有很多坑,最好不用
p1.name = 'xiaohua'
# p1.height = 180 屬性被約束類
setattr(p1, 'age', 18) # 若屬性已經(jīng)有,則修改
setattr(p1, 'weight', 200) # 若屬性不存在,則添加
print(p1.name, p1.height, p1.age, p1.weight)
print('='*20, '增/改', '='*20)
刪: del 對(duì)象.屬性 或者 delattr(對(duì)象,屬性名)
del p1.weight
delattr(p1, 'height')
print('')
print('='*20, '刪', '='*20)