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多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Django 反向生成url实例详解
Jul 30 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
Python的历史与优缺点整理
May 26 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 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连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
php动态变量定义及使用
2015/06/10 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
PHP crc32()函数讲解
2019/02/14 PHP
php扩展开发入门demo示例
2019/09/23 PHP
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python使用cookie库操保存cookie详解
2014/03/03 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
Python 实现简单的电话本功能
2015/08/09 Python
简单介绍Python中的几种数据类型
2016/01/02 Python
Python入门_条件控制(详解)
2017/05/16 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python批量下载抖音视频
2019/06/17 Python
wxpython布局的实现方法
2019/11/01 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
医院办公室主任职责
2013/12/29 职场文书
幼儿发展评估方案
2014/06/11 职场文书
百日宴上的祝酒词
2015/08/10 职场文书