经常使用方法与放射

1、面向对象中的经常使用方法:函数

  1. isinstance(obj,)     判断某个对象是否是某个类的实例。
  2. issubclass(子类,父类)  判断一个类是否是后面类的派生类(子类).

 

2、反射:程序应该要具有访问、检测、修正自己状态或者行为的能力。spa

面向对象中的反射是经过字符串的形式操做对象相关的属性。对象

(一切都是对象,均可以使用反射。类也是对象,类也可使用反射。)接口

 

A. 四个反射(检讨)的方式:(对类也适用)字符串

1.hasattrobj,属性名:          判断某个对象中是否有某个属性get

返回值为布尔型。it

 

2.getattrobj,属性名defaut       获取属性值class

若是有这个属性:反射

返回的是obj.属性名。若是属性书数据属性可直接访问,若是是方法,直 接加括号运行。程序

若是没有这个属性:返回defaut这个参数

 

3.setattrobj,属性名’’属性值)    设置属性(添加属性)

能够为对象添加属性:包括数据属性和函数。

 

4. delattrobj,属性名    删除某个属性

 

  1. 反射的做用:

1.反射用来能够实现插拔。(预留接口插入功能,或者删除功能)

2.动态导入模块(基于反射当前模块成员)

 

3、__getattr____delattr____setattr__(注意:必须设置参数,参考反射参数

内置的__开头的函数,会在特定状况下自动执行代码。

__init__函数会在调用,或者导入模块包时,自动执行。

__setattr__会在添加、修改属性的时候被触发。

__delattr__会在删除属性的时候被触发。

__getattr__只会在访问属性,且属性不存在的状况下才会触发。

__getattribute__只要访问属性,不能属性存不存在都会触发执行。

 

4、描述符(注意:必须设置参数,参考反射参数)

(注意:描述符当中的__set__()等必须有参数,不然报错,内置方法。)

在一个新式类中,包含了def __set__(self)def __get__(self)def __delete__(self)方法的就叫描述符,因此描述符的本质就是一个新式类。可是描述符(新式类)在操做自身属性时不触发,只有将描述符(这个新式类)组合到其余类中,对这个类进行属性操做,描述符才可以相应触发。

 

 

 

 

 

 

5、__init____str____call____del__的自动触发条件。

 

__str__是用来改变对象的值,print时触发,且返回值必须是字符串类型。

相关文章
相关标签/搜索