python之类与对象(5)
6. 类的多继承与超继承
6.1 多继承
python的类还有一个特点,就是可以继承多个类。但是我们作为测试人员,在实际中很少用到这个多继承,这里不就详细(一直都不详细,hhhh)写了。上代码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/12/5 13:43
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :多继承.py
# @Software :PyCharm Community Edition
class A:
def add(self,a,b):
self.a = int(a)
self.b = int(b)
return a+b class B:
def sub(self, a, b):
self.a = int(a)
self.b = int(b)
return a - b class C(A,B):
pass c=C()
result1=c.add(1,2)
result2=c.sub(3,1)
print(result1,result2)
在这个例子中,C既继承A又继承了B,也就是继承了A,B所有的方法,在实例C之后,我们可以直接去调用AB的方法。上面看到的是,AB两个类的类方法不同,如果有类方法相同的呢?
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/12/5 13:43
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :多继承.py
# @Software :PyCharm Community Edition
class A:
def add(self,a,b):
self.a = int(a)
self.b = int(b)
print("Class A")
return a+b class B:
def add(self,a,b):
self.a = int(a)
self.b = int(b)
print("Class B")
return a+b def sub(self, a, b):
self.a = int(a)
self.b = int(b)
return a - b class C(A,B):
pass c=C()
result1=c.add(1,2)
# result2=c.sub(3,1)
print(result1)

结果就是调用的是A的方法,多继承调用,出现同名方法时,会按照顺序优先调用前面父类的同名方法。
6.2 超继承
一听这个名字就很NB。超继承其实也是重写方法的一种,它做的事,就是在类方法中既继承父类的所有特性,也有子类的新特性。超继承用super关键字。继续用工程师来做例子。
阿西吧,真被这个例子搞得头昏脑胀,语法记不住了。好在终于调好了。且看以下代码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/12/4 16:03
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :SoftwareTestEngineer.py
# @Software :PyCharm Community Edition
class SoftwareTestEngineer:
def __init__(self,name,age):
self.name = name
self.age = age def basic_skill(self):
print(self.name+"今年"+str(self.age)+"岁,会简单的功能测试。。") def salary(self, salary):
print("薪资大概是%s" % salary) class JuniorSoftwareTestEngineer(SoftwareTestEngineer): def basic_skill(self):
print(self.name+"今年"+str(self.age)+"岁,会写自动化测试脚本。。") def code(self):
print(self.name+"也会写代码哦") class SeniorSoftwareTestEngineer(JuniorSoftwareTestEngineer):
def code(self):
super(SeniorSoftwareTestEngineer, self).code()
print(self.name+"也可以做开发") ding = SeniorSoftwareTestEngineer("Ding","")
# ding.code()
ding.code()

super类写的是子类的类名,顺着子类的类名找到对应的父类,并调用父类的方法,实现超继承。
super(子类名,self).方法名
python之类与对象(5)的更多相关文章
- python基础——获取对象信息
python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...
- python 引用和对象理解
今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象 ...
- Python深入03 对象的属性
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...
- Python的基础--对象 转
对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识 ...
- Python可迭代对象、迭代器和生成器
Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...
- Python的基础--对象
对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识符. ...
- Python一切皆对象
Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象. Java虽然也是面向对象编程的语言,但是血统没有Python纯正.比如Java的八种基本数据类型之一int,在持久化的 ...
- python引用和对象详解
python引用和对象详解 @[马克飞象] python中变量名和对象是分离的 例子 1: a = 1 这是一个简单的赋值语句,整数 1 为一个对象,a 是一个引用,利用赋值语句,引用a指向了对象1. ...
- 举例子来说明Python引用和对象
今天看到这么一句奇怪的话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象分离 更 ...
- Python 获取类对象的父类
参考 Get parent class name? Python 获取类对象的父类 给定一个类的对象a,要求获取该对象的父类. 方法: a.__class__.__bases__ 返回由该对象的父类组 ...
随机推荐
- 最近工作的一点小tips
最近工作比较忙,但也积累了一些小tips,比较杂,不成系统,也并不很深入,就开一篇笼统的先记录一下,以后再深入挖掘. 1.-webkit-tap-highlight-color -webkit-tap ...
- Luogu 4245 【模板】任意模数NTT
这个题还有一些其他的做法,以后再补,先记一下三模数$NTT$的方法. 发现这个题不取模最大的答案不会超过$10^5 \times 10^9 \times 10^9 = 10^{23}$,也就是说我们可 ...
- name相同获取值
<html> <head> </head> <body> <form name="form1" method="po ...
- 常用工具类——DatetimeUtil
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- 多校训练4——Hehe
递推题: dp[i]表示字符串第i个字母前有多少种不同的方法 1.出现一个hehe:dp[i]=dp[i-4]+dp[i-2] 意思是dp[i]=当前的hehe换成wqnmlgb+当前的hehe不换成 ...
- PowerDesigner连接MySQL
1.使用JDBC连接,地址:http://dev.mysql.com/downloads/connector/j/ 2.需安装Java(应该只要JRE):http://www.oracle.com/t ...
- CodeForces 339B Xenia and Ringroad(水题模拟)
题意:给定 n 个地方,然后再给 m 个任务,每个任务必须在规定的地方完成,并且必须按顺序完成,问你最少时间. 析:没什么可说的,就是模拟,记录当前的位置,然后去找和下一个位置相差多长时间,然后更新当 ...
- Matlab神经网络
1. <MATLAB神经网络原理与实例精解> 2. B站:https://search.bilibili.com/all?keyword=matlab&from_source=na ...
- select, iocp, epoll,kqueue及各种I/O复用机制
http://blog.csdn.net/heyan1853/article/details/6457362 首先,介绍几种常见的I/O模型及其区别,如下: blocking I/O nonblock ...
- Gulp资料大全:入门、插件、脚手架、包清单
awesome-gulp中文版 一份gulp的资源,插件和使用实例清单, 致力于打造更好的前端工程构建流程. 被老外的awesome 清单刺激到,觉得有必要翻译一份,为国产的程序员们做点事情,本清单将 ...