python 继承:重写、拓展(六)
1.继承:父类有的子类也有
2.多继承:若继承多个父类有相同的函数,则继承前面的函数,传递参数的个数也与继承的函数位置有关
3.超继承:针对继承一个父类使用,不仅有父类的特写同时也有自己的新特性 super(类名,self).属性/方法名(参数)
4.重写:子类的函数名与父类的一致,就会重写函数override 覆盖,调用函数的时候只调用子类自己的函数,不在调用父类的,父类不能调用子类的函数,属性。
5.拓展:父类没有的函数,子类有。
class Dad: #父类
def __init__(self,name,age):
self.name=name
self.age=age
def sport(self,hours):
print("只喜欢游泳,每天游泳{0}小时".format(hours))
def cooking(self):
print("只会做蛋炒饭")
def smoke(self):
print("喜欢吸烟")
class Son(Dad): #子类继承父类
def sport(self,hours,*args): #重写
super(Son,self).sport(hours) #保持父类的特性
sport_name=''
for item in args:
sport_name+=item
sport_name+='、'
print("我喜欢{0}这些运动。".format(sport_name))
def coding(self,language="python"): #拓展
print("我是一个程序员,名字{0},今年{1},喜欢{2}编码".format(self.name,self.age,language))
son_1=Son("牛牛",8) #实例化
son_1.sport(2,"篮球","足球","排球")
son_1.coding()
例子:猜拳游戏
import random
class GussingGame:
def choose_role(self):
role={"1":"曹操","2":"张飞","3":"刘备"}
input_role=input("请选择角色:1:曹操 2:张飞 3:刘备")
return role[input_role]
def human_fist(self):
input_num=input("请出拳:1 石头 2 剪刀 3 布")
return int(input_num)
def machine_fist(self):
input_num=random.randint(1,3)
return input_num
def human_vs_machine(self):
human_win=0
machine_win=0
ping=0
fist_num={"1":"石头","2":"剪刀","3":"布"}
#选择角色
role=self.choose_role()
while True:
#出拳
human_fist=self.human_fist()
#电脑出拳
machine_fist=self.machine_fist()
result=human_fist-machine_fist
print(role+"出拳:{0}".format(fist_num[str(human_fist)]))
print("电脑出拳:{0}".format(fist_num[str(machine_fist)]))
if result==-1 or result==2:
print("恭喜你,赢了!")
human_win+=1
elif result==-2 or result==1:
print("很遗憾,你输了!")
machine_win+=1
else:
print("平局!")
ping+=1
choice=input("是否还有继续输入【y】继续,输入【n】结束!")
if choice=='y':
continue
elif choice=='n':
print("游戏结束!")
print("本次比赛{0}次,你赢{1}次,电脑赢{2}次,平局{3}次".format(human_win+machine_win+ping,human_win,machine_win,ping))
break
if __name__ == '__main__':
gg=GussingGame()
gg.human_vs_machine()
python 继承:重写、拓展(六)的更多相关文章
- python自动华 (六)
Python自动化 [第六篇]:Python基础-面向对象 目录: 面向过程VS面向对象 面向对象编程介绍 为什么要用面向对象进行开发 面向对象的特性:封装.继承.多态 面向过程 VS 面向对象 ...
- python 继承中的super
python继承中子类访问父类的方法(包括__init__)主要有两种方法,一种是调用父类的未绑定方法,另一种是使用super(仅仅对于新式类),看下面的两个例子: #coding:utf-8 cla ...
- python继承
Python继承 继承实例: 父类和子类的关系: 继承树: 没有父类就继承object类,不要忘记调用super().__init__来初始化父类 代码: class Person(object): ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- Python学习笔记(六)
Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...
- python继承——封装
python继承--封装 1 为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要原因是:隔离复杂度 2 封装分为两个层面 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的名称空 ...
- Python 继承与多继承
相关知识点: __class__.__name__的用法. >>> class ABC: def func(self): print('打印类名:',__class__.__name ...
- 机器学习算法与Python实践之(六)二分k均值聚类
http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...
- python 继承与多重继承
当然,如果不支持python继承,语言特性就不值得称为“类”.派生类定义的语法如下所示: <statement-1> . . . <statement-N> 名称 BaseCl ...
- Python C/C++ 拓展使用接口库(build-in) ctypes 使用手册
Python C/C++ 拓展使用接口库(build-in) ctypes 使用手册 ctypes 是一个Python 标准库中的一个库.为了实现调用 DLL,或者共享库等C数据类型而设计.它可以把这 ...
随机推荐
- 使用docker-client创建NFS挂载
docker命令行挂载NFS如下: docker volume create --driver local --opt type=nfs --opt o=addr=192.168.11.129,rw ...
- Anaconda安装pygame
注:安装任何库前,都先更新下pip版本 python -m pip install --upgrade pip 安装pygame : pip install pygame
- 前端vscode常用插件
Auto Rename Tag 这是一个html标签的插件,可以让你修改一边标签,另外一边自动改变. Beautify 格式化代码插件 Braket Pair Colorizer 给js文件中的每一个 ...
- PJzhang:URL重定向漏洞的72般变化
猫宁!!! 反射型xss的利用可以给对方发送钓鱼链接,窃取对方cookie,进入对方账户. 利用url重定向漏洞,发送给对方一个钓鱼链接,重定向到一个恶意网页,比如一个假的银行网站,被盗取账号密码 ...
- 简洁易懂说VLAN
简洁易懂说VLAN 1. VLAN概述 虚拟局域网(Virtual Local Area Network,VLAN),VLAN最主要的作用是分割局域网中广播域.传统交换机组成的LAN中,往往包含了成千 ...
- java-selenium上传
一.sendkeys()上传 HTML源码 <td>sendkeys上传</td> <div id='pf'><input type='file' id='p ...
- 【pytorch】学习笔记(四)-搭建神经网络进行关系拟合
[pytorch学习笔记]-搭建神经网络进行关系拟合 学习自莫烦python 目标 1.创建一些围绕y=x^2+噪声这个函数的散点 2.用神经网络模型来建立一个可以代表他们关系的线条 建立数据集 im ...
- SVN简单流程总结
1 创建仓库 2 启动svn服务器 svnserve -d -r 仓库地址(如:D:\SVN\repoDemo1) 3 新的用户第一次与服务器交互时,需要使用checkout将仓库检出到本 ...
- Dasha and Photos CodeForces - 761F (前缀优化)
大意: 给定n*m初始字符矩阵, 有k个新矩阵, 第$i$个矩阵是由初始矩阵区间赋值得到的, 求选择一个新矩阵, 使得其余新矩阵到它距离和最小. 字符集比较小, 可以考虑每次区间覆盖对每个字符的贡献. ...
- C++ 标准库字符串类使用
标准库中的字符串类 C++语言直接支持C语言所有概念. C++中没有原生的字符串类型. 由于C++中没有原生的字符串类型,C++标准库提供了string类型. 1.string 直接支持字符串链接 2 ...