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 ...
随机推荐
- mongodb命令---创建数据库,插入文档,更新文档记录
创建数据库----基本就是使用隐式创建 例如 use 你定义的数据库名, use dingsmongo 如果你使用的是studio 3T软件,那直接选中右侧的地址栏点击右键选择Add Databas ...
- jdk8 时间日期工具类(转)
package com.changfu.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jav ...
- python中导包简介
以pycharm中为例 1.创建一个python package,就是创建一个包,注意,创建Directory和创建python package之间的不同,前者只是一个文件夹,不是包,后者是包.包里有 ...
- 虚拟机里的nginx启动不了的问题
问题: 之前使用虚拟机nginx一直都是正常的, 就在昨天重新配置了一下nginx(其实只注释了反向代理,别的都没动), 重启nginx, 却报错pid为空. 无法启动nginx. 而且重启之前 ...
- android&ios区别
转自(只讲干货的老张) 面试中经常提问到一个点,就是做手机测试绕不去的点,那就是Android和ios的区别.这篇文章只做一些比较重要的点讲一下,太深入部分就不讲了,毕竟我做的是测试,而Android ...
- blur([[data],fn]) 当元素失去焦点时触发 blur 事件。
blur([[data],fn]) 概述 当元素失去焦点时触发 blur 事件.大理石平台生产厂 这个函数会调用执行绑定到blur事件的所有函数,包括浏览器的默认行为.可以通过返回false来防止触发 ...
- 洛谷 P1706 全排列
可能是最简单的题了……讲真搜索hhh 洛谷 P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: ...
- noi 统计前k大的数
描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小.n < 100000. 第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每 ...
- Java事务不回滚的原因总结
1.首先要检查数据的引擎,InnoDB支持事务,MyIsam不支持事务 2. 默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚. spring aop 异常 ...
- tqdm如何在pandas里面使用
原文: https://segmentfault.com/a/1190000016059726 当然,首先我们得载入模块,在notebook中使用tqdm带的基于Js显示的进度条前,请务必检查是否安装 ...