01.11 - 对象增删改

python中对象的属性支持增删改查

p1 = Ql_Person('小花')
p2 = Ql_Person('小红')

查:对象.属性 或者 getattr(对象,属性名: str)

  • print(p1.name) # 属性不存在的时候,会报错
  • print(getattr(p1, 'name1', None)) # 属性不存在的时候,若给属性赋类值,就返回默认值,否则报错,当不确定属性值的时候,就这样使用
    print('='*20, '查', '='*20)

增/改

  • 对象.属性 - 当属性不存在的时候增加属性,当属性存在的时候修改属性
  • setattr(对象, 属性名, 值)
    若要约束当前类的对象有哪些属性,避免错误添加属性
    slots = ('name', 'color') ,写在init上面,但是有很多坑,最好不用
    p1.name = 'xiaohua'
    # p1.height = 180 属性被约束类
    setattr(p1, 'age', 18) # 若属性已经有,则修改
    setattr(p1, 'weight', 200) # 若属性不存在,则添加
    print(p1.name, p1.height, p1.age, p1.weight)
    print('='*20, '增/改', '='*20)

删: del 对象.属性 或者 delattr(对象,属性名)

del p1.weight
delattr(p1, 'height')
print('')
print('='*20, '删', '='*20)

你可能感兴趣的:(01.11 - 对象增删改)