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 23 Python
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
Python通过poll实现异步IO的方法
Jun 04 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
Sep 21 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
Python Pandas数据结构简单介绍
Jul 03 Python
python解析命令行参数的三种方法详解
Nov 29 Python
python实现学生成绩测评系统
Jun 22 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
django教程如何自学
Jul 31 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 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
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Python实现图片滑动式验证识别方法
2017/11/09 Python
Selenium的使用详解
2018/10/19 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
黄金搭档广告词
2014/03/21 职场文书
温馨提示标语
2014/06/26 职场文书
银行业务授权委托书
2014/10/10 职场文书
放假通知格式
2015/04/14 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书