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分析git log日志示例
Feb 27 Python
Python列表list数组array用法实例解析
Oct 28 Python
收集的几个Python小技巧分享
Nov 22 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
python实现BackPropagation算法
Dec 14 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
pandas抽取行列数据的几种方法
Dec 13 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP概率计算函数汇总
2015/09/13 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
深入解析Python中的WSGI接口
2015/05/11 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
python写程序统计词频的方法
2019/07/29 Python
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
小学生自我评价范文
2014/01/25 职场文书
个人简历自我评价范文
2014/02/04 职场文书
中国梦口号
2014/06/13 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis