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中类的继承代码实例的更多相关文章

  1. python中类的继承

    python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...

  2. 第7.6节 Python中类的继承机制详述

    在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...

  3. Python configparser模块操作代码实例

    1.生成配置文件 ''' 生成配置文件 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知 ...

  4. python 面向对象之继承与派生

    一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...

  5. Python之面向对象继承和派生

    Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...

  6. Python面向对象编程——继承与派生

    Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...

  7. python面向对象之继承与派生

    一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的 ...

  8. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  9. Python接口测试自动化说明及代码实例:含get、post、put、delete等方法

    一.接口说明文档 环境准备: 安装火狐 安装插件: httprequester https://addons.mozilla.org/en-US/firefox/addon/httprequester ...

随机推荐

  1. P1361 小M的作物 最小割理解

    如果没有组合效益的存在 我们直接每个点两部分的最大值即可 换成网络流模型来看 即把S点看作是A田 把T点看作是B田 每种作物看作一个点 分别连边(S,i,A[i]) (i,T,B[i]) 最后图中所有 ...

  2. MyBatis-11-一对多处理

    11.一对多处理 比如:一个老师拥有多个学生! 对于老师而言,就是一对多的关系! 环境搭建 环境搭建,和刚才一样 实体类 @Data public class Teacher { private in ...

  3. python pip 出现locations that require TLS/SSL异常处理方法

    python pip 出现locations that require TLS/SSL异常处理方法 转载 郑才华 发布于2018-03-24 21:41:16 阅读数 51844 收藏 展开 最近在r ...

  4. 【线性代数】2-1:解方程组(Ax=b)

    title: [线性代数]2-1:解方程组(Ax=b) toc: true categories: Mathematic Linear Algebra date: 2017-08-31 15:08:3 ...

  5. Towers of Hanoi Strike Back (URAL 2029)

    Problem The Tower of Hanoi puzzle was invented by French mathematician Édouard Lucas in the second h ...

  6. element-ui练习使用总结

    <el-row> <el-col class="borderRed" :span="24"> <div class="g ...

  7. 理清gcc、libc、libstdc++的关系

    当你在linux下写C/C++代码的时候,是不是会遇到许多编译链接的问题? 时不时报个glibc,gcc,g++等相关的错误? 很多时候都无从下手,而且比较混乱. 这也是编译链接过程中经常出现的问题. ...

  8. INNER JOIN连接两个表、三个表、五个表的SQL语句

    1.连接两个数据表的用法: FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort 语法格式可以概括为 ...

  9. FatMouse's Speed

    J - FatMouse's Speed DP的题写得多了慢慢也有了思路,虽然也还只是很简单的DP. 因为需要输出所有选择的老鼠,所以刚开始的时候想利用状态压缩来储存所选择的老鼠,后面才发现n太大1& ...

  10. JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架

    spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...