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 ...
随机推荐
- Kinect for windows的脸部识别
需要引入的dll: 需要将下面两个dll复制到当前路径 Kinect for windows提供了脸部识别的功能,可以识出人脸.主要是通过FaceTrackFrame类的GetTriangles()来 ...
- VLC 可能的 XML parser error 解决
由于 VLC 设置不当 (通常是动了 skin 选项……),再次加载时 VLC 不能正常启动,并报如下错误: [00007f7dd003b670] xml xml reader error: XML ...
- JVM命令jinfo
jinfo也是jvm中参与的一个命令,可以查看运行中jvm的全部参数,还可以设置部分参数. 格式 jinfo [ option ] pid jinfo [ opti ...
- BZOJ2140 稳定婚姻[强连通分量]
发现如果$B_i$和$G_j$配对,那么$B_j$又要找一个$G_k$配对,$B_k$又要找一个$G_l$配对,一直到某一个$B_x$和$G_i$配对上为止,才是不稳定的. 暴力是二分图匹配.匈牙利算 ...
- barcode模块: plus.barcode.scan 进行扫描图片出现无法识别二维码,打印的错误信息是code:8,message:''
原因之一:图片的像素太大了,无法识别. 解决方法: 压缩一下图片. 这里的 data 我放了一个 像素为 4040 × 4040 的 图片. 进行识别的时候会报, (无法识别的图片,都是返回这些值) ...
- Java:应用Observer接口实践Observer模式
本文出自“子 孑” 博客,原文链接:http://zhangjunhd.blog.51cto.com/113473/68949 在Java中通过Observable类和Observer接口实现了观察者 ...
- Sysinternals
http://baike.baidu.com/link?url=LwEFVIcB4h8WaS6sVVH2toBJ0GZUA28yymm1sLsGpDrzF3G2BCZenlHwIsYZdVJZQExE ...
- 一个参数既可以是const还可以是volatile
可以的,例如只读的状态寄存器.它是volatile因为它可能被意想不到地改变.它是const因为程序不应该试图去修改它. 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器 ...
- 剧终—AFO.
/* noip一等完跪. 高考你好. 一年后山大见. AFO. */
- windbg双机调试配置[转]
原文 windbg已不提供单独下载,wdk驱动开发工具包里附带有这个调试器.官网提供下载: http://msdn.microsoft.com/en-us/windows/hardware/gg487 ...