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的循环体中使用else语句的方法
Mar 30 Python
django之常用命令详解
Jun 30 Python
python 除法保留两位小数点的方法
Jul 16 Python
django框架forms组件用法实例详解
Dec 10 Python
Python中os模块功能与用法详解
Feb 26 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 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
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP反向代理类代码
2014/08/15 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
基于Python实现文件大小输出
2016/01/11 Python
Python中运算符"=="和"is"的详解
2016/10/08 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers