练习1:编写一个学生类,产生一堆学生对象要求:有一个计数器(属性),统计总共实例化了多少个对象
 1 class Student:
 2     school = 'luffycity'
 3     count = 0
 4
 5     def __init__(self,name,age,sex):
 6         self.name = name
 7         self.age = age
 8         self.sex = sex
 9         # self.count += 1  # 只能累加到独有的对象上面
10         Student.count += 1 # 累加到全局的count上面
11
12     def learn(self):
13         print('%s is learning'% self.name)
14
15 stu1 = Student('mm',18,'女')
16 stu2 = Student('mumu',1,'男')
17
18 print(stu1.count)
19 print(Student.count)

练习2:模仿LoL定义两个英雄类要求:英雄需要有昵称,攻击力,生命值等属性实例化出两个英雄对象英雄之间可以互殴,被殴打的一方掉血,血量小于0则判定为死亡
 1 class HeroDog:
 2     def __init__(self,name,attack,life_value):
 3         self.name = name
 4         self.attack = attack
 5         self.life_value = life_value
 6
 7     def attack_other(self,enemy):
 8         enemy.life_value -= self.attack
 9         if enemy.life_value <= 0:
10             print('%s 没有血量,宣布死亡!'% enemy.name)
11         else:
12             print('%s血量剩余%s'% (enemy.name,enemy.life_value))
13
14 class HeroPig:
15     def __init__(self,name,attack,life_value):
16         self.name = name
17         self.attack = attack
18         self.life_value = life_value
19
20     def attack_other(self,enemy):
21         enemy.life_value -= self.attack
22         if enemy.life_value <= 0:
23             print('%s 没有血量,宣布死亡!'% enemy.name)
24         else:
25             print('%s血量剩余%s'% (enemy.name,enemy.life_value))
26
27 hero_d = HeroDog('dog',10,100)
28 hero_p = HeroPig('pig',20,80)
29
30 hero_d.attack_other(hero_p)
31 hero_d.attack_other(hero_p)
32 hero_p.attack_other(hero_d)
33 hero_p.attack_other(hero_d)

转载于:https://www.cnblogs.com/mumupa0824/p/8950324.html

第五章---面向对象---小练习相关推荐

  1. Java第五章——面向对象(二)

    第五章面向对象(中) 1.访问控制修饰符 2.继承 3.组合 4.重载 5.覆盖(覆写) 重点: 封装(java访问控制权限) 继承(定义.子类访问控制权限) 类的组合的实现(与继承的区别) 多态(重 ...

  2. 第十五章 面向对象程序设计

    第十五章 面向对象程序设计 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是数据抽象.继承和动态绑定. 继承(inheritance): 通过继承联 ...

  3. 第五章 面向对象(上)

    Java是面向对象的程序设计语言,Java语言提供了定义类.成员变量.方法等最基础的功能,类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将引用到类的对象 ...

  4. 《操作系统》第五章课堂小测

    <操作系统>第05章课堂小测 例题1 设有4个作业同时到达,每个作业的执行时间均为 2h,它们在一台处理器上按单道式运行,则平均周 转时间为(  B  ). A. 1h          ...

  5. pybind11中文资料(第五章 面向对象的代码)

    在此我要特别感谢pybind11项目创立者 Wenzel Jakob以及众多项目参与者 5面向对象的代码 5.1创建自定义类型的绑定 现在来看一个更复杂的例子,这个例子为名为Pet的自定义数据结构创建 ...

  6. 第五章面向对象编程设计与开发

    5.1 什么是面向对象的程序设计 面向过程的程序设计 优点:复杂的问题流程化,进而简单化 缺点:一套流水线或者流程就是用来解决一个问题,扩展性极差. 应用场景:面向过程的程序设计思想一般用于那些功能一 ...

  7. 第二十五章 面向对象------封装、内置函数、反射、动态导入

    1.封装 什么是封装? 1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 学习封装的目的:就是为了能够限制外界对内部数据的访问 python中属性 ...

  8. 第五章 ---- 面向对象(二)

    面向对象二 2.三大特征 2.1.继承性 2.1.1.方法重写 2.1.2.子类实例化过程 2.2.多态性 3.关键字 3.1.super 4.常用类说明 String String概述 字面量方式 ...

  9. c++primer(第五版) 第十五章 面向对象程序设计习题答案

    纯原创    转载请注明出处:http://blog.csdn.net/axuan_k 略过书上有现成代码的题目 15.1  15.2 15.1 虚成员是基类中的概念 基类中的某些函数希望它的派生类能 ...

  10. 第五章 面向对象——多态 课后作业:

    1.编码创建一个打印机类Printer,定义抽象方法print( );创建俩个子类,即针式打印机类DotMatrixPrinter和喷墨打印机类InkpetPringter,并在各自类中重写方法pri ...

最新文章

  1. Spring JTA应用JOTM Atomikos III Atomikos
  2. 搜索引擎anti-spam系统设计指南
  3. ios uilabel 根据文字 计算宽度 高度
  4. 【CodeForces - 255C】Almost Arithmetical Progression (dp,离散化)
  5. python安装报错类型_解决Python安装cryptography报错问题
  6. mvn 命令向本地仓库上传 jar
  7. flutter GestureDetector 手势处理
  8. JAVA零碎要点014---java+selenium环境搭建_浏览器自动化测试框架
  9. mysql 取消密码警告
  10. DB2 V10.5 PureScale支持HADR
  11. Java原生网络编程
  12. 任务管理器被管理员禁用如何解决
  13. java:comp/env 解释
  14. Altium Designer 18板子信息命令
  15. 怎么计算java对象的大小?
  16. 8.mysql备份恢复
  17. 企业经营(数据)分析
  18. html - 表头固定在顶部的一种实现思路
  19. 个人博客上线了!!!(官宣
  20. 压缩感知重构算法之正交匹配追踪算法(OMP)

热门文章

  1. kmeans-用户分层
  2. HTTP 405 错误 – 方法不被允许 (Method not allowed)
  3. TARA-威胁建模方案4
  4. java中 implement_java中implement
  5. Java基础12 implement和extends的区别
  6. Git - 设置签名(Autograph)
  7. 电脑天才郭盛华,如今怎样了?
  8. 数字万用表常用功能使用
  9. 一文解析TCP知识体系
  10. 什么是MergedBeanDefinition?