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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
Python中的元类编程入门指引
Apr 15 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
使用Django和Python创建Json response的方法
Mar 26 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
Python 中由 yield 实现异步操作
May 04 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
pycharm全局搜索的具体步骤
Jul 28 Python
python中把元组转换为namedtuple方法
Dec 09 Python
Python闭包的定义和使用方法
Apr 11 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批量生成缩略图的代码
2008/07/19 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php fread读取文件注意事项
2016/09/24 PHP
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
详解Python time库的使用
2019/10/10 Python
python中rc1什么意思
2020/06/19 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
老同学聚会感言
2014/02/23 职场文书
公司演讲稿开场白
2014/08/25 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
银行贷款委托书范本
2014/10/11 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
追悼会悼词大全
2015/06/23 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
mysql脏页是什么
2021/07/26 MySQL
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技