优草派  >   Python

Python魔术方法是什么?Python魔术方法以及原理详解

罗西汉            来源:优草派

python之中定义在类里面的函数被称为方法,而类中方法有类方法、魔法方法、实例方法、静态方法等等区别,而前面几种方法在小编之前的文章中都有详细介绍。那么本文所要来介绍的自然就是python魔术方法了,想了解学习的话就继续往下看看吧。

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魔术方法以及原理详解”的全部内容了,希望对你有所帮助。

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