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设计模式之抽象工厂模式
Aug 25 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
PyQt5组件读取参数的实例
Jun 25 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
django 单表操作实例详解
Jul 30 Python
pip安装python库的方法总结
Aug 02 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Python List列表对象内置方法实例详解
Oct 22 Python
如何更换python默认编辑器的背景色
Aug 10 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 Python
python3中布局背景颜色代码分析
Dec 01 Python
python神经网络 使用Keras构建RNN训练
May 04 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
PHP反射实际应用示例
2019/04/03 PHP
写的htc的数据表格
2007/01/20 Javascript
一个JS翻页效果
2007/07/23 Javascript
js 表格隔行颜色
2009/12/02 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
Python面向对象特殊成员
2017/04/24 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
社区党建工作汇报材料
2014/08/14 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang