Python中类的继承代码实例


Posted in Python onOctober 28, 2014

相对于C++的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。

#!/usr/bin/python   

#filename: pyclass.py   

  

class Member:   

        def __init__(self, name, age):   

                self.name = name   

                self.age = age   

                print 'Member init:%s' % self.name   

        def tell(self):   

                print 'Name:%s,Age:%d' % (self.name, self.age),   

  

class Student(Member):   

        def __init__(self, name, age, marks):   

                Member.__init__(self, name, age)   

                self.marks = marks   

                print 'Student init:%s' % self.name   

        def tell(self):   

                Member.tell(self)   

                print 'Marks:%d' % self.marks   

  

class Teacher(Member):   

        def __init__(self, name, age, salary):   

                Member.__init__(self, name, age)   

                self.salary = salary   

                print 'Teacher init:%s' % self.name   

        def tell(self):   

                Member.tell(self)   

                print 'Salary:%d' % self.salary   

  

s = Student('Tom', 20, 80)   

t = Teacher('Mrs.Huang', 30, 50000)   

  

members = [s, t]   

for mem in members:   

        mem.tell() 

运行效果:

[root@localhost hhl]# python pyclass.py    

Member init:Tom   

Student init:Tom   

Member init:Mrs.Huang   

Teacher init:Mrs.Huang   

Name:Tom,Age:20 Marks:80   

Name:Mrs.Huang,Age:30 Salary:50000 

我们同样编写同样效果的C++例子:

//filename: class.cpp   

#include <string.h>   

#include <iostream>   

using namespace std;   

  

class Member   

{   

public:   

    Member(char *n, int a);   

    void tell();   

private:   

    char name[10];   

    int age;   

};   

  

Member::Member(char *n, int a)   

{   

    memcpy(name, n, sizeof(name));   

    age = a;   

    cout<<"Member init:"<<name<<endl;   

}   

  

void Member::tell()   

{   

    cout<<"Name:"<<name<<","<<"Age:"<<age<<",";   

}   

  

class Student:public Member   

{   

public:   

    Student(char *n, int a, int m);   

    void tell_s();   

private:   

    int marks;   

};   

  

Student::Student(char *n, int a, int m):Member(n, a)   

{   

    marks = m;   

    cout<<"Student init:"<<n<<endl;   

}   

  

void Student::tell_s()   

{   

    Member::tell();   

    cout<<"Marks:"<<marks<<endl;   

}   

  

class Teacher:public Member   

{   

public:   

    Teacher(char *n, int a, int s);   

    void tell_t();   

private:   

    int salary;   

};   

  

Teacher::Teacher(char *n, int a, int s):Member(n, a)   

{   

    salary = s;   

    cout<<"Teacher init:"<<n<<endl;   

}   

  

void Teacher::tell_t()   

{   

    Member::tell();   

    cout<<"Salary:"<<salary<<endl;   

}   

  

int main(void)   

{   

    Student s("Tom", 20, 80);   

    Teacher t("Mrs.Huang", 30, 50000);   

       

    s.tell_s();   

    t.tell_t();   

  

    return 0;   

} 

运行效果:

[root@localhost hhl]# ./class    

Member init:Tom   

Student init:Tom   

Member init:Mrs.Huang   

Teacher init:Mrs.Huang   

Name:Tom,Age:20,Marks:80   

Name:Mrs.Huang,Age:30,Salary:50000 

这两者的运行效果是一样的,但是python更简洁些。。。

Python 相关文章推荐
Python中的闭包详细介绍和实例
Nov 21 Python
Python文件右键找不到IDLE打开项解决办法
Jun 08 Python
Django模板Templates使用方法详解
Jul 19 Python
python实现桌面托盘气泡提示
Jul 29 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python 静态方法和类方法实例分析
Nov 21 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
python中使用asyncio实现异步IO实例分析
Feb 26 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
Python列表list数组array用法实例解析
Oct 28 #Python
python实现无证书加密解密实例
Oct 27 #Python
深入理解Python 代码优化详解
Oct 27 #Python
简单的Python抓taobao图片爬虫
Oct 26 #Python
Python性能优化的20条建议
Oct 25 #Python
跟老齐学Python之网站的结构
Oct 24 #Python
跟老齐学Python之折腾一下目录
Oct 24 #Python
You might like
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python对视频画框标记后保存的方法
2018/12/07 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
简单的Python人脸识别系统
2020/07/14 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
python 利用toapi库自动生成api
2020/10/19 Python
幼儿园元旦亲子活动方案
2014/02/17 职场文书
租房协议书
2014/09/12 职场文书
交通违章检讨书
2014/09/21 职场文书
民事二审代理词
2015/05/25 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
汽车车尾标语大全
2015/08/11 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript