python中的反射
反射
hashttr :判断某个函数或者变量是否存在
getattr :如果instance对象中有属性name则打印self.name的值,否则打印'not find'
1.反射模块中的内容
import a
import sys
print(sys.modulse['a'].Alipay)
print(a.Alipay)
print(getattr(a,'Alipay'))
print(getattr(sys.modules['a'],'Alipay'))
-
反射本文件中的内容
import sys cat = '小a' dog = '小b' def pig(): print('小p') print(getattr(sys.modules['__main__'],'cat')) print(getattr(sys.modules['__main__'],'dog')) getattr(sys.modules['__main__'],'pig')()
-
反射对象中的属性或者绑定方法
class Person: def __init__(self,name,age): self.name = name self.age = age def qqxing(self): print('qqxing') alex = Person('alex',83) wusir = Person('wusir',74) ret = getattr(alex,'name') print(ret) ret = getattr(wusir,'name') print(set) ret = getattr(wusir,'qqxing') ret()
-
反射类的静态变量
class A: Role = '治疗' def __init__(self): pass print(getattr(A,'Role'))#调用静态变量的时候需要用类名加上静态名
-
callable #判断对象是否可以被调用,可以返回True,不可以返回False