ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 特殊方法、魔法方法的轻谈

2021-01-13 21:32:24  阅读:230  来源: 互联网

标签:__ 特殊 Python self 魔法 调用 other 轻谈 方法


前言

    如果你使用面向对象编程,一定会经常看见特殊方法,最常见的特殊方法是__init__,特殊方法最大的特点是它会被Python解释器自动调用,接下来认真学习一下

 

什么是特殊方法

别称:魔法方法

别称:内置方法

英文:Magic Method

特点:所有的特殊方法均会在某个特定操作时被Python解释器自动调用,同时特殊方法也支持手动调用

 

特殊方法的语法特点

    def __init__(self, *args, **kw):
        pass
        

特殊方法的名称前与名称后,均有2个下划线

 

举例说明

1、创建一个对象后,__init__方法会被自动调用,__init__是特殊方法

2、使用with 语句时,对象的__enter__方法、__exit__方法会被自动调用

这些__xx__的方法,都称为特殊方法

 

重写特殊方法,加入自己的业务逻辑

1、特殊方法__init__方法

实例对象创建后,会去回调__init__方法,所以我们常常会重写该方法加入自己的业务逻辑

2、特殊方法__new__

类通过调用静态方法__new__用于创建实例对象,我们可以重写__new__实现单例类

 

 

常见特殊方法

1、__init__

创建对象后,第一个被调用的方法,被称为初始化方法

2、__new__

类用于创建对象的方法

3、__del__

对象被销毁时会被调用 

4、__enter__与__exit__

with语句回调的方法

5、__setattr__

当你为实例对象设置一个实例变量的时候,这个特殊方法就会被调用

6、 __eq__

self == other,即两个对象进行对比的时候,该方法会被调用

7、 __cmp__(Python3已废弃)

用于对象之间对比时调用

规则:__cmp__ 是 self < other 时返回一个负整数,在 self == other 时返回0,在 self > other 时返回正整数

取而代之的是下面几个魔法方法

__eq__`(self, other) 定义等于操作符(==)的行为。

__ne__(self, other) 定义不等于操作符(!=)的行为。

__lt__(self, other) 定义小于操作符(<)的行为。

__gt__(self, other) 定义大于操作符(>)的行为。

__le__(self, other) 定义小于等于操作符(<)的行为。

__ge__(self, other) 定义大于等于操作符(>)的行为

8、还有很多特殊方法…………等待你去发现与使用

标签:__,特殊,Python,self,魔法,调用,other,轻谈,方法
来源: https://blog.csdn.net/cadi2011/article/details/85004765

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有