反射

2 python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)

四个可以实现自省的函数

下列方法适用于类和对象(一切皆对象,类本身也是一个对象)

对于面向对象 有__init__的属性 必须类实例化后才可以进行反射 不然返回false

1 class  People:
2     def __init__(self):
3         self.name=[]
4         self.age=18
5     def  tall(self):
6         pass
7 # Peopl=People()
8 print(hasattr(People,'age'))  #返回False

name 都为字符串

hasattr(object,name):判断object中有没有一个name字符串对应的方法或属性   

getatter(object,name,default):拿到object中name属性 default默认值  找不到的话报错 设置none报none

setattr(object,name)给对象设置值

delattr(object,name)给对象删除值

原文地址:https://www.cnblogs.com/LoganY/p/9257974.html