029. Python多态介绍
多态:不同的子类对象,调用相同的父类方法,产生不同的结果
- 继承
- 重写
在不改变原有代码的前提下,实现了不同的效果
class Soldier():
# 攻击
def attack(self):
pass
# 后退
def back(self):
pass # 陆军
class Army(Soldier):
def attack(self):
print("[陆军]击鼓进攻") def back(self):
print("[陆军]鸣金撤退") # 海军
class Navy(Soldier):
def attack(self):
print("[海军]发射鱼雷") def back(self):
print("[海军]潜入海底") # 空军
class AirForce(Soldier):
def attack(self):
print("[空军]空中投弹")
def back(self):
print("[空军]掉头撤退") # 类的实例化 返回陆军对象
army_obj = Army()
# 类的实例化 返回海军对象
navy_obj = Navy()
# 类的实例化 返回空军对象
af_obj = AirForce() # 各就位准备
listvar = [army_obj,navy_obj,af_obj] # 将军下达命令
sign = True
while sign:
strvar = """
1.全体攻击
2.全体撤退
3.空军上,其他人撤退
"""
print(strvar)
num = input("将军,请下达您的指令:") if num == "1":
for i in listvar:
i.attack() elif num == "2":
for i in listvar:
i.back() elif num == "3":
for i in listvar:
# 如果当前的对象是空军类型的,调用attack方法
if isinstance(i,AirForce):
i.attack()
# 否则调用back方法
else:
i.back() elif num.upper() == "Q":
# sign=False
break else:
print("报告长官,风太大,我听不到")
执行
1.全体攻击
2.全体撤退
3.空军上,其他人撤退 将军,请下达您的指令:1
[陆军]击鼓进攻
[海军]发射鱼雷
[空军]空中投弹 1.全体攻击
2.全体撤退
3.空军上,其他人撤退 将军,请下达您的指令:2
[陆军]鸣金撤退
[海军]潜入海底
[空军]掉头撤退 1.全体攻击
2.全体撤退
3.空军上,其他人撤退 将军,请下达您的指令:3
[陆军]鸣金撤退
[海军]潜入海底
[空军]空中投弹 1.全体攻击
2.全体撤退
3.空军上,其他人撤退 将军,请下达您的指令:4
报告长官,风太大,我听不到 1.全体攻击
2.全体撤退
3.空军上,其他人撤退 将军,请下达您的指令:q
029. Python多态介绍的更多相关文章
- python进阶介绍(进阶1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6411664.html 本文出自:[Edwin博客园] python进阶介绍(进阶1) 1. python基础 ...
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...
- 【转】Python Twisted介绍
Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...
- 【美妙的Python之中的一个】Python简单介绍及环境搭建
美妙的Python之Python简单介绍及安装 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.Python: ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- 利用Python进行数据分析——重要的Python库介绍
利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...
随机推荐
- 基于.Net Core 5.0 Worker Service 的 Quart 服务
前言 看过我之前博客的人应该都知道,我负责了相当久的部门数据同步相关的工作.其中的艰辛不赘述了. 随着需求的越来越复杂,最近windows的计划任务已经越发的不能满足我了,而且计划任务毕竟太弱智,总是 ...
- Qt获取一张图片的平均色(主色调)
这两天在一个小工具中想做一个图标的发光效果,用固定颜色做出来效果很丑,于是想到此方法,得到图标的主色调后,将颜色调亮,并设置为阴影颜色,从而达到类似发光的效果. 本文章主要在于得到一张图片的平均色,并 ...
- Python学习笔记-PuLP库(3)线性规划实例
本节以一个实际数学建模案例,讲解 PuLP 求解线性规划问题的建模与编程. 1.问题描述 某厂生产甲乙两种饮料,每百箱甲饮料需用原料6千克.工人10名,获利10万元:每百箱乙饮料需用原料5千克.工人2 ...
- 如何使用Vue中的slot
之前看官方文档,由于自己理解的偏差,不知道slot是干嘛的,看到小标题,使用Slot分发内容,就以为 是要往下派发内容.然后就没有理解插槽的概念.其实说白了,使用slot就是先圈一块地,将来可能种花种 ...
- php 简易日志函数应用 debug_backtrace()
1 public static function writeILogs($datas) 2 { 3 $bt = debug_backtrace(); 4 $caller = array_shift($ ...
- hdu1815 2sat + 二分 + 建图
题意: 给你两个总部,s1 ,s2,和n个点,任意两点之间都是通过这个总部相连的,其中有一些点不能连在同一个总部上,有一些点可以连接在同一个总部上,总部和总部之间可以直接连接,就是假如a, ...
- DVWA之Insecure Captcha
Insecure CAPTCHA Insecure CAPTCHA,意思是不安全的验证码,CAPTCHA是Completely Automated Public Turing Test to Tell ...
- POJ2446 模板盖格子 简单二分匹配
题意: 给你一个n*m的格子,有的格子上有坑,然后让你用1*2的东西去覆盖所有没有坑的格子,不能重叠,坑上也不能放东西覆盖,问是否能成功. 思路: 简单题目,每个格子和四周的 ...
- C++ 三消游戏基本实现
最近在研究三消算法,我想试试在完全不借助网络资源的情况下搞定这个东西,所以有些地方可能不是最优的. 代码留此备忘. 1. 3x_desk_event.h 1 #pragma once 2 3 #ifn ...
- 【JavaScript】Leetcode每日一题-最大整除子集
[JavaScript]Leetcode每日一题-最大整除子集 [题目描述] 给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对(an ...