python之中定义在类里面的函数被称为方法,而类中方法有类方法、魔法方法、实例方法、静态方法等等区别,而前面几种方法在小编之前的文章中都有详细介绍。那么本文所要来介绍的自然就是python魔术方法了,想了解学习的话就继续往下看看吧。
一、python魔术方法概念
很多人都会将模式方法以及魔法方法给弄混,因为它们二者都会在方法前后加上两个下划线来标识,但其实有着根本性上的区别。魔术方法简单来说,就是不需要手动调用就可以去执行的方法,。魔术方法是在执行某些操作时,会自动去进行调用的。
二、python魔术方法原理
python中最常用的魔术方法就是init,它也被称为构造函数,因为在实例化类时会默认去调用它,详细代码示例如下所示:
class Mytest(): def __init__(self): print("魔术方法__init__") Mytest()
以上代码运行之后就会自动打印输出方法init之中print()函数里面的内容,因为执行了类实例化操作,所以魔术方法init()被默认引用了。还有另外一个魔术方法为__call__,这个方法用来判断实例化之后的类对象是否可以去调用,它在类对象点方法或者属性时会默认调用,或者通过如下方式手动调用,示例如下所示:
class Demo: def __call__(self, *args,**kwds): print("__call__方法") print(callable(Demo)) obj = Demo() obj()
那么python魔术方法能够自动调用的原理就在于它们是被写在python底层代码之中的,所有的魔术方法都是固定存在且不可去自定义的,调用方式以及运行场景已经设计好了。
以上就是关于“Python魔术方法是什么?Python魔术方法以及原理详解”的全部内容了,希望对你有所帮助。