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 继承:重写、拓展(六)的更多相关文章

  1. python自动华 (六)

    Python自动化 [第六篇]:Python基础-面向对象   目录: 面向过程VS面向对象 面向对象编程介绍 为什么要用面向对象进行开发 面向对象的特性:封装.继承.多态 面向过程 VS 面向对象 ...

  2. python 继承中的super

    python继承中子类访问父类的方法(包括__init__)主要有两种方法,一种是调用父类的未绑定方法,另一种是使用super(仅仅对于新式类),看下面的两个例子: #coding:utf-8 cla ...

  3. python继承

    Python继承 继承实例: 父类和子类的关系: 继承树: 没有父类就继承object类,不要忘记调用super().__init__来初始化父类 代码: class Person(object): ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  6. python继承——封装

    python继承--封装 1 为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要原因是:隔离复杂度 2 封装分为两个层面 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的名称空 ...

  7. Python 继承与多继承

    相关知识点: __class__.__name__的用法. >>> class ABC: def func(self): print('打印类名:',__class__.__name ...

  8. 机器学习算法与Python实践之(六)二分k均值聚类

    http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...

  9. python 继承与多重继承

    当然,如果不支持python继承,语言特性就不值得称为“类”.派生类定义的语法如下所示: <statement-1> . . . <statement-N> 名称 BaseCl ...

  10. Python C/C++ 拓展使用接口库(build-in) ctypes 使用手册

    Python C/C++ 拓展使用接口库(build-in) ctypes 使用手册 ctypes 是一个Python 标准库中的一个库.为了实现调用 DLL,或者共享库等C数据类型而设计.它可以把这 ...

随机推荐

  1. 2019CVPR:Classification-Reconstruction Learning for Open-Set Recogition(Abstract)

    Abstract Open-set classification is a problem of handling 'unknown' classes that are not contained i ...

  2. MongoDB 走马观花(全面解读篇)(转载)

    MongoDB 走马观花(全面解读篇)(转载)   目录 一.简介 二.基本模型 BSON 数据类型 分布式ID 三.操作语法 四.索引 索引特性 索引分类 索引评估.调优 五.集群 分片机制 副本集 ...

  3. 网页设计——HTML(3)布局基础

    为什么要布局? 网页布局,也就是如何安排网页的内容. 一个好的网页布局能够使人眼前一亮,吸引流量. 本篇文章中我们不讨论相关的设计理论,我们只对布局所用到的HTML知识进行学习. 几种简单的布局方式 ...

  4. webdriervAPI(WebElement接口常用方法)

    from  selenium  import  webdriver driver  =  webdriver.Chorme() driver.get("http://www.baidu.co ...

  5. 【Spring Cloud】Spring Cloud使用总结

    项目概要 项目环境信息 IDEA ultimate 2018.3.2 springboot 2.1.7.RELEASE springCloud Greenwich.SR2 Eureka 介绍 基于ne ...

  6. SQL语句规范

    SQLStructure Query Language,结构化查询语言 1.规范(1)mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写 show databases;show DataB ...

  7. ATM机小程序

    用规范化项目录的格式模拟一个ATM系统. 项目功能: 登录(可支持多个账户(非同时)登录) 注册 查看余额 存钱 转账(给其他用户转钱) 查看账户流水 退出 提供的思路:ATM直译就是取款机,但是咱们 ...

  8. L2-013. 红色警报(并查集+无向图联通分量)

    战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不 ...

  9. 为什么说Python采用的是基于值的内存管理模式?

    Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,假如为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址.

  10. Robot Framework(一)安装笔记

    参考网址:https://www.cnblogs.com/yinrw/p/5837828.html因为自己安装了py,网上教程都是统一安装py2.7开始的. 所以这里总结下安装笔记:cmd命令界面进行 ...