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中Collection的使用小技巧
Aug 18 Python
Python常用算法学习基础教程
Apr 13 Python
Python语言描述最大连续子序列和
Dec 05 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
flask 实现token机制的示例代码
Nov 07 Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 Python
python解包概念及实例
Feb 17 Python
教你怎么用python selenium实现自动化测试
May 27 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python 实现微信防撤回功能
2019/04/29 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
市场营销职业生涯规划书范文
2014/01/12 职场文书
八年级数学教学反思
2014/01/31 职场文书
周年庆促销方案
2014/03/15 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书