Python趣味入门12-初遇类与实例.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python趣味入门12:初遇类与实例

一提到类大神们就经常说封装。说白了,封装即把围绕同一个对象相同的代码、数据整合在一起。比如在某段游戏代码中(比如熊猫厨房),有一个面包:

1、游戏提供烘烤的操作。-很明显这是动作-类的方法

2、面包有硬度指数-很明显这是数据-类的属性

从一般情况看,动作可以通过编写函数完成,比如上面的烧烤,游戏可以通过函数绘制出烤箱烤面包的画面。数据就只通过变量来保存值就行,比如上面的硬度,我们可以通过0-10的数字去表示。

以上即包括函数又包括数据的结构,由于是服务于同一个对象的,所以就叫面向对象。

这是小牛叔最喜欢吃的面包

实例就是类的值,类相当于蓝本,实例相当于不同的个体。我们继续玩熊猫厨房的游戏,实际在游戏在完的过程中,每个人的屏幕上都会出现面包,这些个张三的面包、李四的面包就叫实例。这些个实例不一定有相同的属性值比如硬度不同,但是却是共享着相同的属性名称与方法,像是同一个蓝本里刻出来的。

比如在Python中所有的整数,只要出现的整数其实都是int这个类的实例。

Python系统当中大部分的东东都是类,我们之前学习的str-字符串,int-整数,其实都是不同的类,我们用type这个语句就可以查看某个实例是什么类。

type语句-某个值(实例)是什么类

3、定义类

在此分析一下面包的属性:

slices:指使用了几片切片

condiments:面包上配料的列表,比如番茄酱、芥末酱等

cooked_level:一个数字,通过这个属性知道面包被烤程度

cooked_string:一个字符串,描述面包烤出来的软硬程度

再来分析一下面包的方法:

cook():把面包片烤一段时间,这会让面包比较硬容易抹黄油

add_slice():加入一个切片

add_condiment():加入一些配料

3.1__int__()初始化方法

首先定义类中的4个属性,属性我们通过在类中定义__init__()函数来实现,这个函数名称每个类都一样,系统在实例被生时首先执行这个函数的代码,并且把实例传递到self这个变量当中,因此我们在这个方法中,为面包设置如下的属性,并且设置默认属性。

1classbread:

2def__init__(self):

3self.cooked_level=0

4self.cooked_string=Soft

5self.condiments=[]

6self.slices=1

如上的代码,self后紧跟的点号是引用实例的成员,如果不存在会被创建,上述初始化方法当中,定义了一个没有经过烤时间为0,非常软并且没有任何酱料的1小片切片白面包。

3.2定义其它方法

下面我们定义烤面包的方法,我们在class下面,再创建函数用来表示,这个cook函数的第1个参数self是系统要求的实例,并且根据烹饪时间来设置面包的状态。

classBread:

def__init__(self):

self.cooked_level=0

self.cooked_string=软嫩

self.condiments=[]

self.slices=1

defcook(self,time):

self.cooked_level+=time

ifself.cooked_level=10:

self.cooked_string=焦糊

elifself.cooked_level=8:

self.cooked_string=硬脆

elifself.cooked_level=6:

self.cooked_string=适中

elifself.cooked_level=3:

self.cooked_string=稍软

else:

self.cooked_string=软嫩

可以看到我们通过cook这个动作,函数可以根据烤的时间来改变面包的软硬属性cooked_string。

假设游戏刚开始,Joe刚开始准备烤面包,在同一个文件里,我们接着顶格写如下的代码:

joeBread=Bread()

print(烤时间,joeBread.cooked_level)

print(切片数,joeBread.slices)

print(口感,joeBread.cooked_string

文档评论(0)

183****9196 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档