python中的_init_的含义
上面的例子中,Person是一个类,_init_是一个特殊的方法(init是单词初始化initialization的省略形式),在使用类创建对象之后被执行,用于给新创建的对象初始化属性用。
self.name = name 就是初始化属性的语句
_init_是一个方法,这个方法里面有三个形参self、name、age。self表示对象本身,谁调用就表示谁。
这里self.name = name 和 self.age = age表示将外部传来的name 和 age,赋值给了self 对象的name和age属性。
下面是创建对象:P = Person(‘小明‘,20) ---------这句话就创建出来了一个具体的人,并且给这个人起了个名字叫小明,指定了小明的年龄为20,并且将小明这个对象赋值给了变量p,此时p就表示小明这个人(对象)。
这句话就代表,创造了一个人对象(小明),并调用了 init(self,name,age) 方法完成了该人的属性的初始化,小明赋值给name,20赋值给age属性。
而self是不需要传参的,因为slef表示对象本身,谁调用就表示谁,此时的self就表示Person(‘小明‘,20),也就是P。
也就是,我们创造出了p,然后给p的属性赋了值,此时p就表示拥有属性值之后的那个人。
可以使用点.
来调用对象的属性,比如输出p的名字和年龄,完整代码为:
例子:
接下来我们再在Person类中定义一个方法,用于自我介绍:
def desc(self): print("我叫%s,今年%d岁" % (self.name, self.age))
在类的内部,访问自己的属性和方法,都需要通过self,self就是外部对象在类内部的表示,此时可以使用p调用该方法,完整代码如下:
class Person: def __init__(self, name, age): self.name = name self.age = age def desc(self): print("我叫%s,今年%d岁" % (self.name, self.age)) p = Person(‘杰拉考‘, 200) # 调用自我介绍方法 desc方法中的self就是外部的这个p p.desc()
输出为:
我叫杰拉考,今年200岁
当前desc方法中的self,就是外部的那个对象p,如果我再定义了一个对象p2,那么p2调用desc时,desc中的self就表示p2这个对象。正所谓:谁调用,就表示谁