优草派  >   Python

Python的魔法方法是什么意思?什么是Python的类方法?

曾维俊            来源:优草派

很多小伙伴在学习Python程序的时候,会遇到用“__”双下划线包起来的代码,这是一串什么意思的代码呢?就让我们来深入了解一下吧!

Python的魔法方法是什么意思?什么是Python的类方法?

一、Python的“魔法方法”

Python中,所有“__(函数名)__”双下划线包裹的这种方式的代码就叫做“魔法方法”,这种方法在特定的条件下会自动调用;当然也可以手动添加,但是需要保证他们的方法名通常会被左右两个双下划线包裹。

二、常用的“魔法方法”

1)__add__(self,other):定义“+”运算符的魔法方法;

2)__sub__(self,other):定义“-” 运算符的魔法方法;

3)__mul__(self,other):定义“*” 运算符的魔法方法;

4)__truediv__(self,other):定义“/” 运算符的魔法方法;

5)__floordiv__(self,other):定义“//” 运算符的魔法方法;

6)__mod__(self,other):定义“%”运算符的魔法方法;

7)__pow__(self,other[,modulo]):定义“**”或者次方运算的魔法方法;

8)__init__(self[,...]):初始化被创建的实例对象;

9)__new__(cls[,...]):创建实例然后返回该实例对象;

10)__del__(self):销毁实例时调用的魔法对象。

11)......

三、“init”和“new”的区别

在我们常用的“魔法方法”当中,最难学习的也是最容易混淆的就是“__init__”和“__new__”方法,虽然在实际的开发并不需要深入的探讨这个问题,但是作为一名学习者,了解Python函数的本质也是关键一步。

l相同点:都是Python面向对象程序中的函数。

l不同点:

u“__new__”一般是在实例创建之前调用,他是创建实例然后再返回实例对象。

u“__init__”是在实例创建完成之后才能被调用,可以在此函数内部保存初始值,用在类的实例化的时候。

l总结:在Python面向对象的程序编写中,先调用“__new__”,后调用“__init__”,“__new__”返回值的值是传递到“__init__”的第一个参数中,“__init__”给这个实例设置初始值。

四、总结

以上就是Python“魔法方法”的解释以及衍生的知识了,在学习到面向对象编程思想的时候更是要频繁的使用这类方法;了解每个方法大概有什么功能其实也是学习的一部分,毕竟防范于未然,在碰到此类方法的时候,也不会手忙脚乱的查资料啦。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行