python中的_init_的含义

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的名字和年龄,完整代码为:

python中的_init_的含义

例子:

接下来我们再在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这个对象。正所谓:谁调用,就表示谁