Python轻松入门-27 init函数

本文详细介绍了Python中的构造函数__init__(),解释了其类似于C++或Java中的构造函数的作用,并通过实例展示了如何使用__init__()函数来初始化对象属性。
视频教程下载链接: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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚坏叔叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值