python的魔法方法很奇特,有些地方也称他为特殊方法。其结构是由两个下划线(“_”开始中间名称最后以两个下划线(“_”)结束的特殊指定方法,这有点类似java中的接口和abstract,是python中定义的一种规则,一种玩法。这也是python与java对于方法重写的一个较大的不同的地方.Java中我们可能会为了实现某种或某类相似的动作行为(action),从而使用接口式编程,抽象方法来抽象实现过程从而实现其多态性
,而且子类(非抽象类)继承了抽象父亲或者实现了接口后,必须要是实现所继承父类或接口的抽象方法,可以明显发现Java中的多态是基于对象的(父类或接口),而python中的“接口实现方式”方式与其有很大的不同,python中的多态是基于动作和特性的实现的,即操作动作决定方法实现,只要对象实现了对应的魔法方法就可使用python中的某些特殊操作方式对该对象进行操作,而一般这种”特殊操作“的本质是将其内到python的内建函数的操作中。而内建函数操作的本质是根据区分操作对象的数据结构进行调用的,所以木法方式的作用是通过重写类的魔法方法从而实现将类转化为某类数据结构类型的作用(常见的结构类型有:序列、映射、集合和特殊的结构类型迭代器等)。所以魔法方法的大部分内容是围绕如下几个部分的(类,方法,重写,内建函数,数据结构)来展开的。可以分为如下几个部分进行分段了解:
Python 魔法方法与属性
于 2017-12-04 23:42:52 首次发布
本文详细介绍了Python中的魔法方法,包括内建函数、类的方法、类的属性及其使用。魔法方法使得Python具备独特的多态性,允许通过重写特定方法实现内建函数的操作。文章还探讨了类的`__new__`、`__init__`、`__del__`等生命周期方法,以及`__str__`、`classmethod`、`staticmethod`等。此外,还讨论了实例和类属性、私有属性及魔法属性的概念,并举例展示了如何使用魔法方法实现迭代器和生成器。
摘要由CSDN通过智能技术生成