为什么会有__init__这个方法呢?其实我们完全可以用别的方法(换一个名称)代替,但由于我们经常会用到这种定义的方法,所以就产生了__init__()这样一种系统自带的,方便自己对属性进行定义的方法,这种方法也被称为构造器(constructer)。
定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调用这个方法,一般用来对实例的属性进行初始化。
例如:
class testClass(object):
def __init__(self, name, gender):
"""
定义__init__方法,这里有三个参数,这个self指的是创建实例的时候的实例本身(即例子中的testman)。
当然self也可以写成其他东西,比如me也是可以的,这样的话,下面的self.Name就要改写成me.Name。
"""
self.name = name # 等号左边的name是实例的属性,右边的name是方法__init__的参数,二者不同的。
self.gender = gender # 同name
print('hello') # 这里是为了说明在创建类的实例的时候,__init__方法就立马被调用了。
testman = testClass('neo', 'male')
"""
创建了类testClass的一个实例,类中有__init__这个方法,在创建类的实例的时候,我们需要有和__init__匹配的参数。
由于self指的就是我们创建的实例本身,所以self是不用传入的。
这条语句一出来,实例testman的两个属性name, gender就被赋值初始化了。其中name就是neo,gender就是male.
"""
class testClass2(object):
def __init__(me, name, gender):
me.name = name
me.gender = gender
print('hello2')
testman2 = testClass2('jack', 'male')
print(testman2.name)
print(testman2.gender)