python类继承用法实例分析


Posted in Python onOctober 10, 2014

本文实例讲述了python类继承用法。分享给大家供大家参考。具体方法如下:

#!/usr/bin/python
# Filename: inherit.py

class SchoolMember:
  '''Represents any school member.'''
  def __init__(self, name, age):
    self.name = name
    self.age = age
    print'(Initialized SchoolMember: %s)'% self.name

  def tell(self):
    '''Tell my details.'''
    print'Name:"%s" Age:"%s"'% (self.name, self.age),

class Teacher(SchoolMember):
  '''Represents a teacher.'''
  def __init__(self, name, age, salary):
    SchoolMember.__init__(self, name, age)
    self.salary = salary
    print'(Initialized Teacher: %s)'% self.name

  def tell(self):
    SchoolMember.tell(self)
    print'Salary: "%d"'% self.salary

class Student(SchoolMember):
  '''Represents a student.'''
  def __init__(self, name, age, marks):
    SchoolMember.__init__(self, name, age)
    self.marks = marks
    print'(Initialized Student: %s)'% self.name

  def tell(self):
    SchoolMember.tell(self)
    print'Marks: "%d"'% self.marks

t = Teacher('Mrs. Shrividya',40,30000)
s = Student('Swaroop',22,75)
members = [t, s]
for member in members:
  member.tell()# works for both Teachers and Students

运行输出结果如下:

(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)
Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"

它是如何工作的

为了使用继承,我们把基本类的名称作为一个元组跟在定义类时的类名称之后。然后,我们注意到基本类的__init__方法专门使用self变量调用,这样我们就可以初始化对象的基本类部分。这一点十分重要——Python不会自动调用基本类的constructor,你得亲自专门调用它。

我们还观察到我们在方法调用之前加上类名称前缀,然后把self变量及其他参数传递给它。

注意,在我们使用SchoolMember类的tell方法的时候,我们把Teacher和Student的实例仅仅作为SchoolMember的实例。

另外,在这个例子中,我们调用了子类型的tell方法,而不是SchoolMember类的tell方法。可以这样来理解,Python总是首先查找对应类型的方法,在这个例子中就是如此。如果它不能在导出类中找到对应的方法,它才开始到基本类中逐个查找。基本类是在类定义的时候,在元组之中指明的。

一个术语的注释——如果在继承元组中列了一个以上的类,那么它就被称作多重继承

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python创建和使用字典实例详解
Nov 01 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
python实现画圆功能
Jan 25 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
详解python中sort排序使用
Mar 23 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
用python实现名片管理系统
Jun 18 Python
python中实现词云图的示例
Dec 19 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python中的程序流程控制语句
Feb 24 Python
python中元类用法实例
Oct 10 #Python
跟老齐学Python之总结参数的传递
Oct 10 #Python
跟老齐学Python之变量和参数
Oct 10 #Python
跟老齐学Python之重回函数
Oct 10 #Python
跟老齐学Python之Python文档
Oct 10 #Python
跟老齐学Python之大话题小函数(2)
Oct 10 #Python
跟老齐学Python之大话题小函数(1)
Oct 10 #Python
You might like
php strftime函数的详细用法
2018/06/21 PHP
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
python实现银行管理系统
2019/10/25 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
物流仓储计划书
2014/01/10 职场文书
高中运动会入场词
2014/02/14 职场文书
部门活动策划方案
2014/08/16 职场文书
债务纠纷委托书
2014/08/30 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书