Python轻松入门-27 init函数

网友投稿 657 2022-11-26

Python轻松入门-27 init函数

Python轻松入门-27 init函数

视频教程-链接:​​class="data-table" data-id="tea9ccc6-ARIDAj4B" data-transient-attributes="class" data-width="872.014px" style="width: 100%; outline: none; border-collapse: collapse;">

class work:

def __init__(self):print("init函数被调用")

为了有一个直接的对比,我们再创建另一个函数oxox,它的功能就是输出:“oxox函数被调用”:

    def oxox(self):

print("oxox函数被调用")

现在我们就来看看它们的区别,这里我们首先创建oxox类的对象class="data-table" data-id="tea9ccc6-9BWESg5P" data-transient-attributes="class" data-width="872.014px" style="width: 100%; outline: none; border-collapse: collapse;">

= work()

oxox()

我们运行: 图 5‑4 你看,程序首先调用init函数,然后才调用oxox函数,但是这里的代码未曾调用过init函数啊?所以这就是init函数的特别之处了,在任何时候,我们创建一个对象,Python首先做的第一件事就是查找到这个对象的init函数,然后调用它,所以这里我们不需要显示的调用init函数。 现在你可能会觉得这挺有意思,但是init函数到底有什么软用?这里我们拿上节课所讲的Enemy类来举例,这里为敌人类创建一个init函数,它的第一个参数当然是self,这里我还想为它添加一个新的参数,因为我们知道敌人类有一个默认的生命值为3,但是现在我们想创建出一个生命值为5或者8的敌人,那么这个时候,就需要通过另一个参数x来传递生命值了,然后将新的生命值赋值给life:

class Enemy:

life = 3def __init__(self, x)self.life = x

所以非常简单,现在我们再来创建一个普通的函数get_life,它的功能是将当前的生命值打印出来:

    def get_life(self):

print(self.life)

那么接下来,我们就来创建一个敌人对象oxox,然后通过init函数将生命值赋值为5,接着我们再来创建一个敌人的Boss,它的生命值为20:

oxox = Enemy(5)

boss = Enemy(20)

所以现在我们已经有了2个敌人对象,但是它们的生命值不同,所以现在我们可以将它们的生命值打印出来:

oxox.get_life()

boss.get_life()

运行: 图 5‑5 你看这里就分别将它们的生命值打印出来。你也可以下断点调试,看代码的走向。所以,你可以把init理解成C++中的构造函数,它在对象创建的时候会自动的调用。__init__()函数意义重大的原因有两个。第一个原因是在对象生命周期中初始化是最重要的一步;每个对象必须正确初始化后才能正常工作。第二个原因是__init__()参数值可以有多种形式。所以它能够提供更多丰富的功能,这就是关于Init函数的详细介绍。​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python轻松入门-10 注释和break语句
下一篇:Python轻松入门-34 列表查找最大和最小值
相关文章

 发表评论

暂时没有评论,来抢沙发吧~