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轻松查到删除自己的微信好友
Jan 10 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
python sys.argv[]用法实例详解
May 25 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Python学习笔记之While循环用法分析
Aug 14 Python
python解释器spython使用及原理解析
Aug 24 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
判断Python中的Nonetype类型
May 25 Python
Python max函数中key的用法及原理解析
Jun 26 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简单浏览目录内容的实现代码
2013/06/07 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
Python re模块介绍
2014/11/30 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
大学班长的职责
2014/01/27 职场文书
大学生个人自荐信
2014/02/24 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
房产代理公证处委托书
2014/04/04 职场文书
班级标语大全
2014/06/21 职场文书
简易离婚协议书范本
2014/10/24 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
Golang实现可重入锁的示例代码
2022/05/25 Golang