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. caoz的梦呓:信息安全,别为了芝麻丢了西瓜

    猫宁!!! 参考链接:https://mp.weixin.qq.com/s/z6UI-tdhN1CGdqQQuglLVQ 对方公众号:caoz的梦呓 我之前写微博的时候,经常就有读者反馈说,你怎么用3 ...

  2. 导模块的细节:(跨文件导入模块 &模块的两种执行方式) | 包的概念与使用 | 包中的相对导入语法

    今日内容 包: 1. 导入模块的细节 2. 包的概念与使用 3. 包中的相对导入语法 跨文件夹导入模块 1. 假设有一个文件夹a ,a 的下面有一个ma 的模块,如果a文件夹所在目录在环境变量,a文件 ...

  3. Elasticsearch的选举

    一.bully算法  经过以下几个步骤   1.启动节点ping协调器,获取当前集群状态(节点信息,集群名称等),如果协调器没有启动一直到ping通为止   2.无论能ping通,都会拿到对象acti ...

  4. 分布式锁用Redis还是ZooKeeper?(转载)

    文章系网络转载,侵删. 来源:https://zhuanlan.zhihu.com/p/73807097 为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景. 图片来自 Pexels 为什么 ...

  5. (转) pip Fatal error in launcher: Unable to create process using

    接上篇“Eclipse启动报错:JVM terminated. Exit code=2”,今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python ...

  6. 上课笔记:awk

    awk [单独的编程语言解释器]1.awk介绍 全称:Aho Weinberger Kernaighan 三个人的首字母缩写:  1970年第一次出现在Unix机器上,后来在开源领域使用它: 所以,我 ...

  7. 什么是云服务器ECS

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务.云服 ...

  8. C++笔记(3)——string.h相关的一些小知识

    strlen() 用于得到字符数组中第一个\0前的字符的个数,格式如下: strlen(数组); 例子: #include <stdio.h> #include <string.h& ...

  9. 2019中山纪念中学夏令营-Day4[JZOJ]

    Begin (题目的排序方式:难易程度) 什么是对拍: 对拍是一种在写完程序后,验证自己程序是不是正解的比较方便的方法. 实现过程: 对同一道题,再打一个暴力程序,然后用一些大数据等跑暴力程序来进行验 ...

  10. 剑指Offer 1-41 代码(python实现)

    今天主要写了一下offer 1-41题,余下的稍后整理 1 """ 1 镜像二叉树: 递归 """ def mirror(root): if ...