Python面向对象——魔术方法

文章目录

    • 特殊属性
    • 创建,初始化与销毁
    • 可视化
    • 类型转换
    • 索引与切片
    • 重复,连接与成员操作符
    • 循环
    • with语句安全上下文![在这里插入图片描述](https://img-blog.csdnimg.cn/20190625173458959.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzE4NzY2OQ==,size_16,color_FFFFFF,t_70)

特殊属性

魔术方法名称name 查看类、函数、方法等的名字
module 类定义所在的模块
class 对象或类所属的类
bases 当前类的基类(父类)
doc 类、函数的文档帮助、没有定义为None
mro Method Resolution Order方法解析顺序
dict 类或实例的属性,可写的字典

查看属性:
dir 返回类或者对象的左右成员名称列表,dir()函数就是调用__dir__()。

1)如果dir([obj])参数包含方法__dir__(),该方法将被调用
2)如果Obj不包含__dir__(),该方法将最大限度收集属性信息。

dir(obj)对于不同类型的对象obj具有不同的行为:
1.如果对象是模块对象,返回的列表包含模块的属性名和变量名
2.如果对象是类型或者类对象,返回的列表包含类的属性名,及它的基类的属性名
3.如果obj不写 即dir(),返回列表包含内容不同

_在模块中,返回模块的属性和变量名。
_在函数中,返回本地作用域的变量名。
_在方法中,返回本地作用域的变量名。

创建,初始化与销毁

面试常问:python中__new__,init,__del__的区别?
1).new的功能是在生成对象之前所作的操作,接受的参数是cls类,负责对象的创建工作。
2).init是在对象生成之后,对他的属性进行丰富,完善,他所接受的是self对象,负责对象的初始化操作。
3).对象生成是在new里面return(返回一个对象)

可视化

类型判断要使用type或者isinstance,不能通过判断print输出是否带引号来判断输出值的类型。
1).str()与repr()都是python中的内置函数,是直接用来格式化字符串的函数。
2).而__str__与__repr__是在类(对象)中对类(对象)本身进行字符串处理。

str:返回一个可以用来表示对象的可打印的友好字符串。
-对字符串,返回本身
-没有参数,则返回空字符串
-对类__str()成员控制其行为。该成员不存在,则使用其__repr()成员。

类型转换

init(self) 转换成整形
long(self) 转换成长整型
float(self) 转换成浮点型
complex(self) 转换成复数型
oct(self) 转换成八进制
hex(self) 转换成十六进制
index(self) 如果你定义了一个可能被用来做切片的数值类型,就用index定义

索引与切片

Python面向对象——魔术方法_第1张图片
Python面向对象——魔术方法_第2张图片
Python面向对象——魔术方法_第3张图片

重复,连接与成员操作符

Python面向对象——魔术方法_第4张图片
Python面向对象——魔术方法_第5张图片

循环

在这里插入图片描述
Python面向对象——魔术方法_第6张图片

with语句安全上下文Python面向对象——魔术方法_第7张图片

你可能感兴趣的:(技术类,python魔术方法)