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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
Python语言的变量认识及操作方法
Feb 11 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
python实现合并两个排序的链表
Mar 03 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
django框架cookie和session用法实例详解
Dec 10 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
Python基于Opencv识别两张相似图片
Apr 25 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 && 逻辑与运算符使用说明
2010/03/04 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
Vue实现简单计算器
2021/01/20 Vue.js
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python tornado修改log输出方式
2019/11/18 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
python的Jenkins接口调用方式
2020/05/12 Python
Python join()函数原理及使用方法
2020/11/14 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
安全教育实施方案
2014/03/02 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
书法大赛策划方案
2014/06/04 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
Windows server 2016服务器基本设置
2022/08/14 Servers