反射:
- 反射就是可以从对象中搜索出所需的属性
- 先检测是否存在某属性用hasattr,如果要获取用getattr,如果对属性要进行添加或修改用setattr,如果需要删除用delattr
- 【如果没有某个属性,getattr会报错,setattr不会报错,delattr会报错】
class A: haha=1 def helo(self): pass a=A() choice=input("请输入要检测的属性:") if hasattr(a,choice):##如果有该属性 print(getattr(a,choice))###获取属性 #如果是一个函数:f=getattr(a,choice), f(参数)来调用 else: setattr(a,choice,666) print(getattr(a, choice)) print(a.__dict__)###显示的是a的实例变量 delattr(a,choice)##获取完后尝试删除 print(a.__dict__)###结果显示刚刚新添加的已经被删除
- 对于需要先判断是否存在某属性的可以多用反射