1. 编程学习网 > 编程教程 > Python教程 > python面向对象实战演练

python面向对象实战演练

面向对象实战演练
本节将通过几个实例演示,来增加大家对面向对象编程的印象。

1.“英雄”类

题目描述:设计一个“英雄类”,有以下属性:血量、英雄名字,攻击力。方法有:自我属性描述、死亡、受伤。模拟功能:英雄受到伤害后,血量降低,血量为0时,英雄死亡。

输出结果:
gaylen正在遭受攻击,血量正在下降...
gaylen正在遭受攻击,血量正在下降...
英雄阵亡...
 
可以看懂这个程序的朋友们说明已经掌握了最基本的面向对象编程。
因为只是简单的模拟,所以在方法内我们只用了print()输出简单的功能提示。在hero类里我们设置了三个实例变量,和两个类里的普通方法,还有一个die()方法,因为不需要传递参数,所以我们把它定义为了静态方法。主要功能还是在injure()方法里,当英雄对象受到伤害时,调用injure()方法,没次调用都会执行一次14行的降低血量的代码,直到调用次数满足将血量消耗完成时,类中会自动调用die()方法,告知英雄阵亡。

 2.求不同形状的面积

题目描述:我们之前有用到过isinstance(a,b)方法,其中a是必须一个对象,b是必须一个类,它可以判断对象和这个类之间的关系,如果a是b的类型或者子类时,会返回True,否则返回False。创建一个图形类,包含一个求面积的方法,基于这个图形类利用多态性,实现长方形,梯形和圆形的面积求解。
 
 
 输出结果:
长方形的面积是: 200
三角形的面积是: 100.0
圆形的面积是: 314.0
 
使用多态的前提条件是要有继承,这里三个形状共同继承了父类shape,由于他们各自有各自的求面积方法,所以在三个子类里面分别重写了get_area()方法,不过这里需要注意的是,对于不同的形状来说,传入的参数代表的意义是不同的,比如长方形,我们传入的是长和宽,三角形传入的是底和高,圆形传入的是半径。在构造方法里面,给这些实例变量做初始化的时候,这样使用了三种不同的书写形式,然后本质都是一样的,即都是加载父类的两个变量,只不过意义不同,其实也完全可以自己重写构造方法,不用父类的。


本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/Python/2020/0118/536.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休