python3魔术方法总结

面向对象魔术方法:隐式调用的方法

__new__  构造方法

触发机制: 实例化对象时触发(在__init__之前)
作用: 管理控制对象创建的过程
参数: 一个cls 接受当前类, 其他参数根据初始化方法的参数进行决定
返回值: 必须返回object, new(cls)进行对象的创建,如果没有返回值,则实例化的结果位None
注意事项:
new__方法的参数要和__init 方法的参数保持一致,处理第一个(cls/self)
必须返回object.new(cls)进行对象的创建,如果没有返回值,实例化结果返回None
应用场景: 设计模式中的单例设计模式

__init__ 初始化方法

触发机制: 实例化对象之后立即触发
作用: 为当前创建的对象完成一些初始化的操作
参数: 一个self,接受当前对象,其他参数根据需求进行定义
返回:无
注意:无

__del__ 析构方法

触发:当对象被销毁时,自动触发
作用:关闭或释放对象时,打开或创建一些资源
参数: 一个self,无其他
返回:注意:无

__call__

触发:把对象当做函数直接调用时触发
作用:一般用于归纳类或对象的方法、操作步骤
参数: 一个self,接受当前对象,其他参数根据需求进行定义
返回: 可有可无

__len__

触发: 当使用len函数去检测当前对象时触发
作用: 可以使用len函数检测当前对象中的某个数据的信息
参数: 一个self,接受当前对象
返回: 必须有必须是一个整形
注意事项: len要获取什么属性的值,就返回那个属性的长度即可

__str__

调用:当使用str与print操作时自动触发
作用:可以再函数中自定义返回打印信息
参数:self
返回:必须有,必须是字符串

__repr__构造方法

触发机制: 实例化对象时触发(在__init__之前)
作用: 管理控制对象创建的过程
参数: 一个cls 接受当前类, 其他参数根据初始化方法的参数进行决定
返回值: 必须返回object, new(cls)进行对象的创建,如果没有返回值,则实例化的结果位None
注意事项:
new__方法的参数要和__init 方法的参数保持一致,处理第一个(cls/self)
必须返回object.new(cls)进行对象的创建,如果没有返回值,实例化结果返回None
应用场景: 设计模式中的单例设计模式

__init__ 初始化方法

触发机制: 实例化对象之后立即触发
作用: 为当前创建的对象完成一些初始化的操作
参数: 一个self,接受当前对象,其他参数根据需求进行定义
返回:无
注意:无

__del__ 析构方法

触发:当对象被销毁时,自动触发
作用:关闭或释放对象时,打开或创建一些资源
参数: 一个self,无其他
返回:注意:无

__call__

触发:把对象当做函数直接调用时触发
作用:一般用于归纳类或对象的方法、操作步骤
参数: 一个self,接受当前对象,其他参数根据需求进行定义
返回: 可有可无

__len__

触发: 当使用len函数去检测当前对象时触发
作用: 可以使用len函数检测当前对象中的某个数据的信息
参数: 一个self,接受当前对象
返回: 必须有必须是一个整形
注意事项: len要获取什么属性的值,就返回那个属性的长度即可

__str__

调用:当使用str与print操作时自动触发
作用:可以再函数中自定义返回打印信息
参数:self
返回:必须有,必须是字符串

__repr__

触发:在使用repr方法对当前对象进行转换时自动触发
作用:可以设置repr函数的操作对象结果(flask框架?)
参数:一个self
返回值:必须有,而且必须位字符串
注意:正常情况下,没有__str__时,会代替调用它

__bool__

触发:当使用bool对当前对象进行转换时触发,默认情况转化为True
作用:可以代替对象进行bool()的转换,返回想要的值
参数:self
返回:返回bool类型值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值