python基础学习之类的属性 增删改查
-
类中的属性如何在类外部使用代码进行增删改查呢
-
增加、改变:
setattr内置函数以及 __setattr__魔法方法
class A:
aaa = '疏楼龙宿'
a = A()
setattr(a,'aaa','人间至帅')
内置函数:三个参数,第一个是类名,第二个是属性名字符串,第三个是需要修改的内容,注意,需要先实例化
a.__setattr__('aaa','人间至帅')
魔法方法:类中的魔法方法调用,传入属性名字符串和需要修改的内容
增加又是怎么样的呢?同样是这个方法,如果你输入的属性名,匹配不到,那么就会自动增加,比如:
setattr(a,'bbb',123)
这就会增加一个bbb = 123 的属性进去
-
查找:
hasattr内置函数和__hasattr__魔法方法
getattr内置函数和__getattr__魔法方法
class A:
aaa = '疏楼龙宿'
a = A()
hasattr(a,'aaa') 返回bool值,告诉你有没有这个属性在里面
getattr(a,'aaa') 返回属性的具体内容,获取属性,要注意的是,当获取的属性不存在,即会报错;同样,可以通过对对应的魔法方法修改,来让函数输出其他内容。
-
删除:
delattr内置函数和 __delattr__ 魔法方法
或者 直接 del 这个实例化
delattr(re , 'ccc')
re .__delattr__('bbb')
del re
其涵义同上
-
总结,类的方法就是***attr这个,查找就是哈西attr(hasattr)或者获取attr(getattr),增加/修改就是设置attr(setattr),删除就是删除attr(delattr),以及上述该实例化对应的魔法方法