1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python面向对象封装案例——士兵突击

Python面向对象封装案例——士兵突击

时间:2020-02-21 21:04:22

相关推荐

Python面向对象封装案例——士兵突击

面向对象封装案例 II

目标

士兵突击案例身份运算符

封装

封装是面向对象编程的一大特点面向对象编程的第一步—— 将属性方法封装到一个抽象的外界使用创建对象,然后让对象调用方法对象方法的细节都被封装类的内部

一个对象的属性可以是另外一个类创建的对象

1. 士兵突击

需求

士兵许三多有一把AK47士兵可以开火能够发射子弹装填装填子弹——增加子弹数量

1.1 开发枪类

shoot方法需求

1> 判断是否有子弹,没有子弹无法射击2> 使用print提示射击,并且输出子弹数量

class Gun:def __init__(self, model):# 枪的型号self.model = model# 子弹数量self.bullet_count = 0def add_bullet(self, count):self.bullet_count += countdef shoot(self):# 判断是否还有子弹if self.bullet_count <= 0:print("没有子弹了...")return# 发射一颗子弹self.bullet_count -= 1print("%s 发射子弹[%d]..." % (self.model, self.bullet_count))# 创建枪对象ak47 = Gun("ak47")ak47.add_bullet(50)ak47.shoot()

1.2 开发士兵类

假设:每一个新兵 都没有枪

定义没有初始值的属性

在定义属性时,如果不知道设置什么初始值,可以设置为None

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

fire方法需求

1> 判断是否有枪,没有枪没法冲锋2> 喊一声口号3> 装填子弹4> 射击

class Soldier:def __init__(self, name):# 姓名self.name = name# 枪,士兵初始没有枪 None 关键字表示什么都没有self.gun = Nonedef fire(self):# 1. 判断士兵是否有枪if self.gun is None:print("[%s] 还没有枪..." % self.name)return# 2. 高喊口号print("冲啊...[%s]" % self.name)# 3. 让枪装填子弹self.gun.add_bullet(50)# 4. 让枪发射子弹self.gun.shoot()

小结

创建了一个士兵类,使用到__init__内置方法在定义属性时,如果不知道设置什么初始值,可以设置为None封装的方法内部,还可以让自己的使用其他类创建的对象属性调用已经封装好的方法

2. 身份运算符

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

Python中针对None比较时,建议使用is判断

is 与 == 区别:

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

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

>>> a = [1, 2, 3]>>> b = [1, 2, 3]>>> b is a False>>> b == aTrue

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。