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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
python中使用enumerate函数遍历元素实例
Jun 16 Python
python实现定时播放mp3
Mar 29 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
详解Python中is和==的区别
Mar 21 Python
python实现五子棋游戏
Jun 18 Python
对Django项目中的ORM映射与模糊查询的使用详解
Jul 18 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Python中and和or如何使用
May 28 Python
关于python中模块和重载的问题
Nov 02 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应用提速面面观
2006/10/09 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
filemanage功能中用到的lib.js
2007/04/08 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
浅谈Python中的数据类型
2015/05/05 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
初中校园之声广播稿
2014/01/15 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
书法比赛获奖感言
2014/02/10 职场文书
运动会稿件100字
2014/02/21 职场文书
园林系毕业生求职信
2014/06/23 职场文书
贷款委托书怎么写
2014/08/02 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL