我们知道,Python是一门追求简单、高效的语言,无论是设计之处还是在历次的更新中,它的这一特点延续至今,它并不像某些语言,如Java、C++等,需要让类实现接口,并逐一实现接口中的方法。Python采用了一种约定的机制,在基类中以特殊名称的方法、属性(类似__XXX__这样的属性和方法)来提供指定的功能。
什么?给类做个简历?约定机制
在Python中有些方法名、属性名前后加上了双下划线,这种方法、属性通常属于Python类的特殊方法和属性,有的书中成为“魔法方法”,这种叫法也能体现其神奇功能,程序猿可以通过重写这些方法或者直接调用这些方法来实现特殊的功能。最常见的魔法方法要数大家在自定义类时使用的__init__()方法了,很多人误以为这是一个创建类的方法,其实不然,Obj.__init__()方法的作用只是对Obj对象中实例变量进行初始化,要创建类的实例,必须调用Obj__new__()方法,只是大多数情况下,我们不需要对__new__()方法进行显式调用而已。(可以参见盘点Python编程中遇到的无数个“坑”(多继承下__init__()方法))
魔法方法如果对这些“魔法方法”掌握不清楚,使用时很容易踩“坑”。我们后续将利用几个章节详细了解下这些“魔法方法”的使用。喜欢的朋友们加