Python中类的继承代码实例
这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下

相对于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
#include
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中类的继承
python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...
- 第7.6节 Python中类的继承机制详述
在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...
- Python configparser模块操作代码实例
1.生成配置文件 ''' 生成配置文件 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知 ...
- python 面向对象之继承与派生
一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...
- Python之面向对象继承和派生
Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...
- Python面向对象编程——继承与派生
Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...
- python面向对象之继承与派生
一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python接口测试自动化说明及代码实例:含get、post、put、delete等方法
一.接口说明文档 环境准备: 安装火狐 安装插件: httprequester https://addons.mozilla.org/en-US/firefox/addon/httprequester ...
随机推荐
- C++-cin与scanf cout与printf效率问题
http://blog.csdn.net/l2580258/article/details/51319387 void cin_read_nosync() { freopen("data.t ...
- 小白学习MongoDB笔记(一)·下载及安装MongoDB
下载地址:http://dl.mongodb.org/downloads.我选的64位的 windows64-bit 2008 R2.当时版本为3.0.7 文件格式为.msi 借用“一线码农”的话: ...
- 老瞎眼 pk 小鲜肉 (线段树)
链接:https://ac.nowcoder.com/acm/contest/1114/E来源:牛客网 题目描述 老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一 ...
- Java的值传递和引用传递的说法
学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java ...
- [].slice.call(arguments,1) 个人理解
var arr = []; [] == arr; 假设 var arr = [1,2,3,4,5]; 那么 arr.slice(1,2) == [2]; 通过 slice.call 才能使用call显 ...
- 数据传输还用 CPU?不如交给 DMA 吧!
https://mp.weixin.qq.com/s/CQQSV26Xvmt2xuAPFnh-YQ 鱼鹰 鱼鹰谈单片机 3月3日 预计阅读时间: 9 分钟 "数据传输耗时又耗力?交给 DM ...
- 关于iar intrinsics.h is already included previously!报错的问题及解决办法
用最新的cubemx生成f103的代码(带freertos系统),如果用iar编译,可能会出现intrinsics.h is already included previously!的错误,如果没有待 ...
- 2018-2019 ACM-ICPC Brazil Subregional Programming Contest B. Marbles(博弈)
题目链接:https://codeforc.es/gym/101908/problem/B 题意:两个人玩游戏,有 n 块石头,初始坐标为(x,y),一次操作可以将一块石头移动到(x - u,y),( ...
- 设置springboot、mysql、nginx,tomcat文件大小(大集合)
1.springboot设置文件大小 第一种: application.properties中添加 spring.http.multipart.maxFileSize=10MBspring.http. ...
- MFC 标签页Tab Control
自带的标签页不好用,因此借助了TabSheet文件TabSheet源码 1.在解决方案资源管理器——项目处鼠标右键——在文件资源管理器中打开文件夹(或者按下图,更方便),把TabSheet.h.Tab ...