Python-类的继承

摘要:
类的继承面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。在python中继承中的一些特点:1:在继承中基类的构造不会被自动调用,它需要在其派生类的构造中亲自专门调用。区别于在类中调用普通函数时并不需要带上self参数3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。如果在继承元组中列了一个以上的类,那么它就被称作"多重继承"。

类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

需要注意的地方:继承语法class 派生类名(基类名)://... 基类名写作括号里,基本类是在类定义的时候,在元组之中指明的。

在python中继承中的一些特点:

  • 1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
  • 2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
  • 3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。

语法:

派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后,如下所示:

classSubClassName(ParentClass1[,ParentClass2,...]):'Optional class documentation string'class_suite

实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-
classParent:# 定义父类parentAttr =100def__init__(self):print"调用父类构造函数"
   defparentMethod(self):print'调用父类方法'
   defsetAttr(self,attr):Parent.parentAttr =attr

   defgetAttr(self):print"父类属性 :",Parent.parentAttr

classChild(Parent):# 定义子类def__init__(self):print"调用子类构造方法"
   defchildMethod(self):print'调用子类方法 child method'
c =Child()# 实例化子类c.childMethod()# 调用子类的方法c.parentMethod()# 调用父类方法c.setAttr(200)# 再次调用父类的方法c.getAttr()# 再次调用父类的方法

以上代码执行结果如下:

调用子类构造方法调用子类方法child method
调用父类方法父类属性:200

你可以继承多个类

classA:# 定义类 A.....
classB:# 定义类 B.....
classC(A,B):# 继承类 A 和 B.....

你可以使用issubclass()或者isinstance()方法来检测。

  • issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup)
  • isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

免责声明:文章转载自《Python-类的继承》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tomcat 配置开启 APR 模式Composer教程之基础用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

静听网+python爬虫+多线程+多进程+构建IP代理池

目标网站:静听网 网站url:http://www.audio699.com/ 目标文件:所有在线听的音频文件 附:我有个喜好就是听有声书,然而很多软件都是付费才能听,免费在线网站虽然能听,但是禁ip很严重,就拿静听网来说,你听一个在线音频,不能一个没听完就点击下一集,甚至不能快进太快,否则直接禁你5分钟才能再听,真的是太太讨厌了... 于是我就想用爬虫给...

高效率的排列组合算法《编程珠矶》python实现

组合算法 本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为 “01”组合,同时将其左边的所有“1”全部移动到数组的最左端。 当第一个“1”移动到数组的m-n的位置,...

使用python爬虫爬取股票数据

前言: 编写一个爬虫脚本,用于爬取东方财富网的上海股票代码,并通过爬取百度股票的单个股票数据,将所有上海股票数据爬取下来并保存到本地文件中 系统环境: 64位win10系统,64位python3.6,IDE位pycharm 预备知识: BeautifulSoup的基本知识,re正则表达式的基本知识 代码: importrequests from bs4 i...

python AES加密 ECB PKCS5

class AesEbc16:  # 按块的大小, 一块一块的加密, 明文和密文长度一样   def __init__(self):     self.key = b"123qweqqqwerqwer"  # 加密和解密用同一个秘钥, 长度为 每块的长度     self.mode = AES.MODE_ECB  # ECB加密模式, 也是默认的模式, 创...

python pymysql连接数据库并创建表

之前看菜鸟教程 #!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() #...

【Python】爬取百度图片

所需要导入的包:BeautifulSoup:该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单。这里是用来获取一个页面里面的各个标签及里面的内容,我们主要用到它里面的find(),find_All()函数requests:是用来获取网页信息的,也就是...