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类型值

你可能感兴趣的:(python,python)