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 修改文件指定行的方法
May 15 Python
python类参数self使用示例
Feb 17 Python
json跨域调用python的方法详解
Jan 11 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
儿童学习python的一些小技巧
May 27 Python
Python常用特殊方法实例总结
Mar 22 Python
python 生成器和迭代器的原理解析
Oct 12 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
使用Python进行防病毒免杀解析
Dec 13 Python
python -v 报错问题的解决方法
Sep 15 Python
python Scrapy爬虫框架的使用
Jan 21 Python
python实现会员管理系统
Mar 18 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
js静态作用域的功能。
2006/12/25 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
使用python分析git log日志示例
2014/02/27 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
python生成二维码的实例详解
2017/10/29 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
树莓派实现移动拍照
2019/06/22 Python
python字典的遍历3种方法详解
2019/08/10 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
Python中SQLite如何使用
2020/05/27 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
国际贸易专业个人鉴定
2014/02/22 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
个人合伙协议书范本
2014/10/14 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
MongoDB使用场景总结
2022/02/24 MongoDB