Python轻松入门-27 init函数

    xiaoxiao2021-03-25  60

    视频教程下载链接:http://pan.baidu.com/s/1eR35hq6 配套教程下载:http://pan.baidu.com/s/1qYdI6q4 这节课,我们来讲解Init函数,那么什么是init()函数呢?你可以把它理解为C++或者Java中的构造函数,这个函数会在每次创建对象的时候自动调用,现在我们来创建一个类work,然后定义这个类的构造函数__init__,它的作用就是输出:“init函数被调用” class work: def __init__(self): print("init函数被调用") 为了有一个直接的对比,我们再创建另一个函数oxox,它的功能就是输出:“oxox函数被调用”:     def oxox(self): print("oxox函数被调用") 现在我们就来看看它们的区别,这里我们首先创建oxox类的对象www,因为只有通过对象才能访问到oxox类的成员函数,然后通过这个对象来调用oxox函数: www = work() www.oxox() 我们运行: 图 5‑4 你看,程序首先调用init函数,然后才调用oxox函数,但是这里的代码未曾调用过init函数啊?所以这就是init函数的特别之处了,在任何时候,我们创建一个对象,Python首先做的第一件事就是查找到这个对象的init函数,然后调用它,所以这里我们不需要显示的调用init函数。 现在你可能会觉得这挺有意思,但是init函数到底有什么软用?这里我们拿上节课所讲的Enemy类来举例,这里为敌人类创建一个init函数,它的第一个参数当然是self,这里我还想为它添加一个新的参数,因为我们知道敌人类有一个默认的生命值为3,但是现在我们想创建出一个生命值为5或者8的敌人,那么这个时候,就需要通过另一个参数x来传递生命值了,然后将新的生命值赋值给life: class Enemy: life = 3 def __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函数的详细介绍。 更多精彩内容尽在视频中! 本文固定链接:http://www.oxox.work/web/?p=1559&preview=true | 虚幻大学查看原文:http://www.oxox.work/web/python/init/
    转载请注明原文地址: https://ju.6miu.com/read-26135.html

    最新回复(0)