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)的更多相关文章

  1. python基础——获取对象信息

    python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...

  2. python 引用和对象理解

    今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象 ...

  3. Python深入03 对象的属性

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...

  4. Python的基础--对象 转

      对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识 ...

  5. Python可迭代对象、迭代器和生成器

    Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...

  6. Python的基础--对象

    对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识符. ...

  7. Python一切皆对象

    Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象. Java虽然也是面向对象编程的语言,但是血统没有Python纯正.比如Java的八种基本数据类型之一int,在持久化的 ...

  8. python引用和对象详解

    python引用和对象详解 @[马克飞象] python中变量名和对象是分离的 例子 1: a = 1 这是一个简单的赋值语句,整数 1 为一个对象,a 是一个引用,利用赋值语句,引用a指向了对象1. ...

  9. 举例子来说明Python引用和对象

    今天看到这么一句奇怪的话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象分离 更 ...

  10. Python 获取类对象的父类

    参考 Get parent class name? Python 获取类对象的父类 给定一个类的对象a,要求获取该对象的父类. 方法: a.__class__.__bases__ 返回由该对象的父类组 ...

随机推荐

  1. ui界面使用 DialogMonitorOPS 问题

    -- 是类主要是实现对界面上元素的处理.实现效果的处理 struct gt_cl_hp_uiName ( fn help = ( gt_10000_help = " 类主要是实现对界面上元素 ...

  2. React相关知识和经验的碎片化记录

    React相关知识和经验的碎片化记录 1.Warning: validateDOMNesting(...): Whitespace text nodes cannot appear as a chil ...

  3. Windows下搭建JSP开发环境

    1. 配置说明: => 编辑器: Eclipse (Java EE IDE) => 数据库: MySQL (MySQL Workbench 进行数据库管理, 用 MySQL Connect ...

  4. OpenCV 4 Android

    OpenCV4Android Want a Quick Start link? Use this tutorial: “OpenCV for Android SDK”. 想要快速开始吗?使用这个教程: ...

  5. socket API详解

    send函数 int send( SOCKET s,   const char FAR *buf,   int len,   int flags ); 不论是客户还是服务器应用程序都用send函数来向 ...

  6. T-SQL逻辑查询

    理解T-SQL的逻辑查询顺序是学习SQL Server的基础. T-SQL逻辑执行顺序 (8)    SELECT (9) DISTINCT (11) <TOP_specification> ...

  7. TSQL--NESTED LOOPS JOIN

    算法:遍历外表,将遍历出结果依次在内标中匹配查找 --如果内表无索引,则扫描内表 foreach(row r1 in outerTable) { foreach(row r2 in innerTabl ...

  8. 从hive将数据导出到mysql(转)

    从hive将数据导出到mysql http://abloz.com 2012.7.20 author:周海汉 在上一篇文章<用sqoop进行mysql和hdfs系统间的数据互导>中,提到s ...

  9. BHO插件操作IE浏览器,js调用C#方法

    BHO是IE浏览器的扩展程序,全名Browser Helper Object,文件格式为DLL文件.可对IE浏览器的界面和访问内容进行修改操作.BHO只适用于IE浏览器,对其他任何浏览器都没有作用.( ...

  10. python基本算法

    算法优劣评判标准 时间复杂度: 定义:用来评估算法运行效率的一个式子 print('Hello World') O(1) for i in range(n): print('Hello World') ...