Python基础13——python和类相关的几个函数及几个特殊函数

这些函数都是内置函数。

13.1与类有关的几个函数

1、getattr:获取对象的属性和方法

getattr有三个参数:getattr(对象名或类名,属性,‘default’)

最后一个default是默认值,也就是某个类或者某个对象没有你要获取的属性或者方法时,返回default(相当于将default赋值给属性)
Python基础13——python和类相关的几个函数及几个特殊函数Python基础13——python和类相关的几个函数及几个特殊函数
注意:当用getattr获取某个对象的方法的时候,返回的是这个方法,如果让返回结果加()输出的话,那就输出这个方法以该对象为参数的函数运行结果(就相当于返回的是函数,加括号就是调用了这个函数,不加括号就输出这个函数的地址)。

2、setattr:设置一个不存在的属性

setattr(对象名或类名,属性名,设置的值)

使用setattr时有两种情况,第一种就是原本对象或者类内并没有这个属性,我可以通过setattr来进行添加并赋值
Python基础13——python和类相关的几个函数及几个特殊函数
第二种就是,假如某对象或者类内已经存在某属性,再用setattr进行操作的话就相当于对该属性值进行修改
Python基础13——python和类相关的几个函数及几个特殊函数

3、hasattr:判断对象有没有某属性或者方法,返回布尔值

hasattr(对象或类名,要检查的属性名或方法名)
Python基础13——python和类相关的几个函数及几个特殊函数
hasattr  还可以用来判断某个模块中是否存在某个方法。

4、delattr:删除属性

类属性只能通过类名来删
Python基础13——python和类相关的几个函数及几个特殊函数

5、isinstance:检查是不是这个对象产生的实例,返回布尔值

Python基础13——python和类相关的几个函数及几个特殊函数

7、issubclass:检查一个类是否是另一个类的子类,返回布尔值

Python基础13——python和类相关的几个函数及几个特殊函数

13.2几个特殊函数

1、__init__    初始化函数(构造函数)

Python的类中可以有很多个构造函数,但是最后一个构造函数会覆盖掉上面的构造函数,所以,只有最后一个init函数有效。

2、__doc__    文档,也就是获取类的注释文档

注意它只返回第一个三对单引号或三对双引号的类的注释文档。

Python基础13——python和类相关的几个函数及几个特殊函数

3、__dict__:

以字典的形式返回类的属性及其值,属性和值构成键值对。

如果是 对象.__dict__ 的话返回的是属性和值的字典

如果是 类.__dict__ 的话返回的是类中所有的内容,包括属性、方法

甚至注释文档等。

Python基础13——python和类相关的几个函数及几个特殊函数Python基础13——python和类相关的几个函数及几个特殊函数

4、__call__

实例化对象()自动调用类中的__call__方法,如果类中没有__call__函数的话,实例化对象()这样使用会报错

Python基础13——python和类相关的几个函数及几个特殊函数Python基础13——python和类相关的几个函数及几个特殊函数

5、__str__ 和 __repr__

其实简单来说

__str__是给人看的

__repr__是给机器看的,但是总的来说repr的优先级比str要高,因为str只能给人看,而repr既能给机器看也能给人看。

所以平时尽可能的使用repr。

Python基础13——python和类相关的几个函数及几个特殊函数         Python基础13——python和类相关的几个函数及几个特殊函数