**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面向对象进阶的主要内容,如果未能解决你的问题,请参考以下文章

python-面向对象进阶

Python基础-week06 面向对象编程进阶

python学习笔记-面向对象进阶&异常处理

python学习笔记-面向对象进阶&异常处理

Python7 - 面向对象编程进阶

Python 进阶指南(编程轻松进阶):十六面向对象编程和继承