python的自省,如type(),dir(),getattr(),hasattr(),isinstance().

class Person:
    def __init__(self):
        self.name = '小王'


p = Person()
print(hasattr(p, 'name'))  # hasattr(object, name):判断一个对象里面是否有name属性或者name方法,返回BOOL值
print(hasattr(p, 'age'))
print(getattr(p, 'name'))  # getattr(object, name[,default]):获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选
print(getattr(p, 'age', setattr(p, 'age', 18)))  # setattr(object, name, values):给对象赋值


输出结果:
True
False
小王
18 

 

你可能感兴趣的:(python的自省,如type(),dir(),getattr(),hasattr(),isinstance().)