1、何为魔法方法:
Python中,一定要区分开函数和方法的含义;
1.函数:类外部定义的,跟类没有直接关系的;形式: def func(*argv):
2.方法:class内部定义的函数(对象的方法也可以认为是属性);分为两种:
① python自动产生的(魔法方法):一般形式为 func(),python会在对应的时机自动调用该函数;
② 人为自定义的方法:一般和普通函数没有区别,只是定义在了class中而已
3.方法与函数的区别:
方法可认为是函数的特殊情况;
① 方法定义在class内部
② 方法的第一个参数应为 cls(类方法) 或者 self(实例方法)
2、魔法方法汇总:
PS: ①.以上所有的魔法方法,君采用__xx__形式(__为双 “_”,双下划线)
②.以上魔法方法为Python解释器自动调用,当然也可以手动调用
③.魔法方法Python解释器自动给出默认的,因此除非需要改变其内部功能,其它时刻刻使用默认魔法方法
④.魔法方法是针对class而言的,脱离了”类“谈magic_method是没有意义的
⑤.*argv为可变的参数列表,类似C语言的va(variable argument),注意与指针的区别,python中暂时忘掉指针,因为python的内存机制都是解释器自动完成的