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保存字符串到文件的方法
Jul 01 Python
Python书单 不将就
Jul 11 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
python编程嵌套函数实例代码
Feb 11 Python
opencv python 傅里叶变换的使用
Jul 21 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
Python模拟登录requests.Session应用详解
Nov 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
JAVA/JSP学习系列之七
2006/10/09 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
怎样搭建PHP开发环境
2015/07/28 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
心扬JS分页函数代码
2010/09/10 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
dpn网络的pytorch实现方式
2020/01/14 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
费用会计岗位职责
2014/01/01 职场文书
司仪主持词两篇
2014/03/22 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
测量员岗位职责
2015/02/14 职场文书
Oracle中日期的使用方法实例
2022/07/07 Oracle