issubclass()
检测一个类是否是;另外一个类的子类
class A():
pass
class B(A):
pass
print(issubclass(B,A))
结果:True
isinstance()
检测是否是类的一个实例
class A():
pass
class B():
pass
a=A()
b=isinstance(a,A)
print(b)
b=isinstance(a,B)
print(b)
结果:True
False
反射方法
getattr()
获取对象/类中成员的值
class A():
xiaogou=10
b=getattr(A,"xiaogou")
print(b)
结果:10
hasattr()
检测对象/类是否有某个成员,返回值:布尔型
class A():
xiaogou=10
b=hasattr(A,"xiaogou")
print(b)
结果:True
setattr()
设置或者添加对象/类中的成员,返回值:None
class A():
xiaogou=10
print(A.__dict__)
setattr(A,"zhutou",200)
print(A.__dict__)
a=A()
print(a.__dict__)
setattr(a,"haha",230)
print(a.__dict__)
结果:{}
{‘haha’: 230}
delattr()
删除对象/类中的成员,返回值:None
class A():
xiaogou=10
delattr(A,"xiaogou")
反射自己模块中的属性和函数
import sys
def haha():
print("heheheh")
zhutou=198
print(sys.modules)#查看所有模块
print(sys.modules['__main__'])
x=getattr(sys.modules['__main__'],"zhutou")#反射当前模块中的zhutou变量
print(x)
x=getattr(sys.modules['__main__'],"haha")#反射当前模块中的函数
x()
结果:198
heheheh