**python面向对象进阶
Posted brzp97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了**python面向对象进阶相关的知识,希望对你有一定的参考价值。
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__)
以上是关于**python面向对象进阶的主要内容,如果未能解决你的问题,请参考以下文章