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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python实现购物系统(示例讲解)
Sep 13 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python3安装speech语音模块的方法
Dec 24 Python
Django框架视图函数设计示例
Jul 29 Python
解决django model修改添加字段报错的问题
Nov 18 Python
利用python实现AR教程
Nov 20 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
Python中and和or如何使用
May 28 Python
Python实现日志实时监测的示例详解
Apr 06 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php 面向对象的一个例子
2011/04/12 PHP
php重定向的三种方法分享
2012/02/22 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
python中argparse模块用法实例详解
2015/06/03 Python
Python中动态创建类实例的方法
2017/03/24 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python3调用R的示例代码
2018/02/23 Python
python实现简单神经网络算法
2018/03/10 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
德国网上药房:Apotal
2017/04/04 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
金智子午JAVA面试题
2015/09/04 面试题
会计专业自荐信
2013/12/02 职场文书
给学校建议书范文
2014/05/13 职场文书
银行自荐信范文
2015/03/25 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
付款证明模板
2015/06/19 职场文书
Golang 对es的操作实例
2022/04/20 Golang