self的作用就相当于在一堆类似的物件中找到识别具体每一个的方法,同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,Python 会自动绑定类方法的第一个参数指向调用该方法的对象。如此,Python解释器就能知道到底要操作哪个对象的方法了。
_init_()函数也叫实例化(初始化)函数,在init函数中实例化对象的函数后,才能再后续的调用方法中被访问到,方法调用时才真正的调用class类中的实例中的变量。
python是一种动态语言,可以给对象动态添加属性和方法,其中_init_()方法来初始化对象的属性,赋值给类对象的属性后,创建类对象后一定会调用_init_()进行参数的传递。类似于java中的构造函数。
__init__方法的第一参数永远是self
,表示创建的类实例本身,因此,在__init__
方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__
方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__
方法匹配的参数,但self不需要传,Python解释器会自己把实例变量传进去。