python 的getattr()函数、setattr()函数、hasattr()函数、delattr()函数
程序员文章站
2022-07-15 16:50:26
...
getattr函数
语法
getattr(object, name, default) 返回一个对象的属性值
object参数是一个对象
name参数是对象的属性值
default参数表示如果对象的属性值不存在,则返回这个默认值,可选
setattr(object, name, value) 没有返回值
object参数是一个对象
name参数是对象的属性值
value参数表示设置name的值
注意:如果name是已经存在的属性,那么value是修改name的值,如果name不存在,那么value是新增的name值
hasattr(object, name) 返回值是true或false
object参数是一个对象
name参数表示对象的属性或者方法,如果存在返回true,不存在返回false
delattr(object, name)
object参数是一个类名或者对象名
name参数表示属性值
class A:
a = 1
def __init__(self):
self.c = 2
def run(self):
pass
a = A()
print(getattr(a, "a")) # 获取a的属性值,也可以把a换成A
print(getattr(a, "d", 2)) # 属性d不存在,但是输出默认值2
输出:1
setattr(a, "a", 5) # 把a的值设置为5
print(a.a)
输出:5
setattr(a, "b", 8) # 新增属性b,并且把b的值设为8
print(a.b)
输出:8
print(hasattr(a, "a")) # 判断a对象是否有a属性
输出:True
print(hasattr(a, "run")) # 判断a对象是否有run方法
输出:True
print(hasattr(a, "f")) # 判断a对象是否有f属性或方法
输出:False
delattr(A, "a") # 删除A的a属性
print(hasattr(a, "a"))
输出:False
delattr(a, "c") # 删除a的c属性
print(hasattr(a, "c"))
输出:False
注意:在delattr中如果删除类属性,则需要使用类对象,如果删除实例属性,需要使用实例对象
上一篇: CAT的Server消费消息(二)
下一篇: CAT的Server初始化