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 20 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
浅谈Python traceback的优雅处理
Aug 31 Python
Python拼接字符串的7种方法总结
Nov 01 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
python实现人像动漫化的示例代码
May 17 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python 创建TCP服务器的方法
Jul 28 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 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查看当前Session的ID实例
2015/03/16 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
扩展String功能方法
2006/09/22 Javascript
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
Prototype框架详解
2015/11/25 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
Python新手实现2048小游戏
2015/03/31 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
Python 代码调试技巧示例代码
2020/08/11 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
教师年终个人自我评价
2013/10/04 职场文书
银行实习自我鉴定
2013/10/12 职场文书
实习指导老师评语
2014/04/26 职场文书
材料化学专业求职信
2014/07/15 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
土地转让协议书
2014/09/27 职场文书
汉语拼音教学反思
2016/02/22 职场文书
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技