python反射

python中的反射的实现,是通过hasattr、getattr、setattr、delattr四个内置函数实现的,其实这四个内置函数不只可以用在类和对象中,也可以用在模块等其他地方。

hasattr(key)返回的是一个bool值,判断某个成员或者属性在不在类或者对象中
getattr(key,default=xxx)获取类或者对象的成员或属性,如果不存在,则会抛出AttributeError异常,如果定义了default那么当没有属性的时候会返回默认值。
setattr(obj,key,value)假如有这个属性,那么更新这个属性,如果没有就添加这个属性并赋值value
delattr(key)删除某个属性

class Person():
    def __init__(self,name,age):
        self.name=name
        self.age=age

if __name__=='__main__':
    li=Person('lili',18)
    print(hasattr(li,'name'))
    setattr(li,'age',22)
    print(getattr(li,'age'))
    delattr(li,'age')
    print(getattr(li,'age'))
原文地址:https://www.cnblogs.com/wangbin2188/p/12098644.html