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的一些用法分享
Oct 07 Python
python创建和使用字典实例详解
Nov 01 Python
Python函数式编程指南(三):迭代器详解
Jun 24 Python
5个很好的Python面试题问题答案及分析
Jan 19 Python
Django中反向生成models.py的实例讲解
May 30 Python
详解python Todo清单实战
Nov 01 Python
python实现引用其他路径包里面的模块
Mar 09 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
实例详解Python的进程,线程和协程
Mar 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
PHP 命名空间实例说明
2011/01/27 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
php session 写入数据库
2016/02/13 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
javascript import css实例代码
2008/07/18 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
Python实现的异步代理爬虫及代理池
2017/03/17 Python
全面分析Python的优点和缺点
2018/02/07 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
python中提高pip install速度
2020/02/14 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
项目计划书范文
2014/01/09 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
2014年检验科工作总结
2014/11/22 职场文书
小学音乐课教学反思
2016/02/18 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书