反射
getatter
只要是a.b这种结构,都可以使用反射.
用对象\类\模块反射,都只有一下场景
这种结构有两场景
a.b b是属性或者变量值
getattr(a,'b')==a.b
a.b() b是函数或者方法
a.b()
getattr(a,''b')()
a.b(*arg1,**kwarg)
getattr(a,''b')(*arg1,**kwarg)
如果是本文件中的内容,不符合a.b这种结构
直接调用func()
getattr(sys.modules[__name__],''func'')()
直接使用类名person()
getattr(sys.modules[__name__],'person')()
直接使用变量名print(a)
getattr(sys.modules[__name__],'a')()
setattr 只是用来修改或者添加属性\变量,不能用来处理函数或者是其他方法
a.b=value
setatte(a,'b',value)
delattr 只用来删除 属性\变量
del a,b 删除属性 相当于删除了a对象当中的b属性