class Gun: --- 先定义枪类型 def __init__(self,mode,count): --- 》属性为类型和子弹数量 self.mode = mode self.count = 0 --- 》初始子弹数量为0 def shoot(self,number): ----》枪的技能1发射,子弹剩余量=总弹数
class Gun: --->先定义枪类型 def __init__(self,mode,count): ---》属性为类型和子弹数量 self.mode = mode self.count = 0 ---》初始子弹数量为0 def shoot(self,number): ----》枪的技能1发射,子弹剩余量=总弹数-发射的数量(不定) self.count -= number def add_count(self,number): ----》枪的技能2装子弹,子弹剩余量= 装入与发射的差 self.count += number class Soldier: ----》定义士兵类型 def __init__(self,name): self.name = name ---》属性1姓名 gun = None ----》属性2 枪 def fire(self,count): count = n.count ---》定义士兵的枪的子弹数量为上面枪剩余子弹数 if count > 0: ----》大于0允许开炮,否则不允许 print(‘你持有ak47,子弹数量是%s,可以开炮‘ %count) else: print (‘没有子弹了,不可以开炮‘) n = Gun(‘ak47‘,0) ----》定义枪类型的对象为n,n的名字是ak47 n.add_count(int(input(‘装入子弹数:‘))) ----》自定义装入子弹数 n.shoot(int(input(‘射出子弹数:‘))) ----》自定义射出子弹数 s = Soldier(‘许三多‘) ---》定义士兵类型为许三多 print(s.fire(n.count)) ----》根据士兵手里的ak是否有子弹来输出是否可以开炮
面向对象介绍:
一、面向对象和面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点:扩展性差 面向对象:核心是对象二字,对象指特征与技能的结合体 基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成,是一种‘上帝式’的思维方式 优点:可扩展性强 缺点:变成复杂度高,极容易出现过度设计的问题 2、类 对象是特征与技能的结合体,类就是一系列对象相似的特征与技能的结合体 在现实生活中:一定是先有一个个具体的对象,后总结出类 在程序中:一定是先定义类,后产生对象