标签:delattr subclass 反射 att elf setattr 对象 字符串 删除
isinstance(obj,cls)和issubclass(sub,super)
#isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) #issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo)
反射:程序可以访问,检测和修改本身运行状态或行为的一种能力(自省)
Python中可以实现自省的四个函数(通过字符串的形式操作相关属性)
hasattr getattr setattr delattr
class test: def __init__(self,x,y,z): self.x = x self.y = y self.z = z def func(self): return self.x+self.y+self.z s = test(1,2,3) # hasattr判断是否含有某属性 print(hasattr(s,‘x‘)) # getatter获取属性 v = getattr(s,‘func‘) print(v()) #setattr设置属性 setattr(s,‘w‘,4) print(s.__dict__) # delattr删除属性 delattr(s,‘w‘) print(s.__dict__)
标签:delattr subclass 反射 att elf setattr 对象 字符串 删除
原文地址:https://www.cnblogs.com/brzp97/p/9900645.html