Python面向对象编程--类的函数

winterSky 2018-08-27 AM 932℃ 0条

python关于类的方法
https://blog.csdn.net/ziteng_du/article/details/78825913

1、getattr:获取对象的属性和方法
getattr有三个参数:getattr(对象名或类名,属性,‘default’)

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

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

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

使用setattr时有两种情况,第一种就是原本对象或者类内并没有这个属性,我可以通过setattr来进行添加并赋值

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

hasattr(对象或类名,要检查的属性名或方法名)
hasattr 还可以用来判断某个模块中是否存在某个方法。

4、delattr:删除属性

类属性只能通过类名来删

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

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

特殊函数

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

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

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

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

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

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

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

甚至注释文档等。

4、__call__

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

5、__str__ 和 repr

其实简单来说

__str__是给人看的

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

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

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~