搬运工
搬运工

学习Python时候,我一直被许三多按在地上摩擦(第37天)

原文地址http://www.toutiao.com/a6808648624096936452/

这两天学习的进度有点慢,主要是三方面原因:

一是工作确实有点忙,摸鱼的时间太少了;

二是参加了头条的培训课程,业余时间要听课、完成作业;

更重要的是,学习的内容确实需要好好消化一下。

太快了,效果一般都不好,这个道理,每个中年男人都懂的。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

24集,士兵突击案例分析

本集以我们敬爱的许三多同志为例继续讲解 封装。

重点强调:一个对象的 属性 可以是 另外一个类创建的对象。

案例需求:士兵 许三多 有一把 AK47;士兵 可以 开火;枪 能够 发射 子弹;枪 装填 装填子弹 -- 增加子弹数量。

按照名词提炼法,可知有两个类:士兵类、枪类。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

士兵类的属性 枪 是由 枪 类创建的对象。

25集,创建枪类

按照之前的思路,枪 类要被使用到,所以要先开发 枪 类。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

接下来就是创建枪对象,这个就是轻松加愉快了。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

至此,第一个阶段的工作完成。

26集,创建士兵类,完成初始化方法

创建士兵类的初始化方法中,要定义 姓名 和 枪 两个属性。

这里假设每一个新兵都 没有枪,所以也就没法使用赋值语句定义 枪 属性。

在定义 属性 时,如果 不知道设置什么初始值,就可以使用 None 这个关键字。

None 关键字表示 什么都没有;表示一个 空对象,没有方法和属性,是一个特殊的常量;可以将 None 赋值给任何一个变量。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

学习Python时候,我一直被许三多按在地上摩擦(第37天)

27集,完成开火方法

装填子弹这一动作,枪无法自己完成,需要许三多操作。

所以定义 开枪 的方法第一步要先判断士兵是否有枪,有枪后才能执行后面的装填子弹、发射子弹的动作。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

这个里面各种调用,学习过程可谓是:真.晕菜。

再次强调:一个对象的 属性 可以是 另外一个类创建的对象。

上面的代码中,实际上就是 gun 对象调用 add_bullet 和 shoot 两个方法。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

28集,身份运算符,判断None应该使用is

Python 中有两个身份运算符: is 和 is not。

身份运算符用于 比较 两个对象的 内存地址 是否一致,即是否是对同一个对象的引用。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

is 与 == 的区别:

is 用于判断 两个变量 引用对象是否为同一个;

== 用于判断 引用变量的值 是否相等。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

在 Python 中针对 None 比较时,建议使用 is 判断,而不要使用 ==。

学习Python时候,我一直被许三多按在地上摩擦(第37天)

作者简介:冯十一,40岁仍然坚持学习的哏儿都老男人。多平台签约作者,日更写作践行者,每周阅读一本书。欢迎关注@天津冯十一

百度 https://cloud.baidu.com/product/textcensoring 文本审核结果 {"errno":0,"msg":"success","data":{"log_id":6800096690624634971,"result":{"spam":0,"review":[],"reject":[],"pass":[{"score":0.0060000000521541,"hit":[],"label":1},{"score":0.23999999463558,"hit":[],"label":2},{"score":0,"hit":[],"label":3},{"score":0.38934337748344,"hit":[],"label":4},{"score":0.003000000026077,"hit":[],"label":5},{"score":0.064000003039837,"hit":[],"label":6}]}}}
2020-03-27 14:34:05
0 热度