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 django 实现验证码的功能实例代码
May 18 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
浅析Python数据处理
May 02 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
wxPython实现带颜色的进度条
Nov 19 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
为什么是 Python -m
Jun 19 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 Python
python神经网络编程之手写数字识别
May 08 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
xml+php动态载入与分页
2006/10/09 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
python实现简单遗传算法
2018/03/19 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
大学生素质拓展活动方案
2014/02/11 职场文书
致100米运动员广播稿
2014/02/14 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
洗发露广告词
2014/03/14 职场文书
师德师风自查总结
2014/10/14 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
创业计划书详解
2019/07/19 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS