Python面向对象——魔术方法

本文深入探讨Python的特殊属性、魔术方法如__new__、__init__、__del__的区别,以及类型转换、索引、切片、可视化、循环和with语句的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特殊属性

魔术方法名称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定义

索引与切片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重复,连接与成员操作符

在这里插入图片描述
在这里插入图片描述

循环

在这里插入图片描述
在这里插入图片描述

with语句安全上下文在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值