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. 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)

    P2341 [HAOI2006]受欢迎的牛|[模板]强连通分量 https://www.luogu.org/problem/P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就 ...

  2. Python单例模式(Singleton)的N种实现

    很多初学者喜欢用全局变量,因为这比函数的参数传来传去更容易让人理解.确实在很多场景下用全局变量很方便.不过如果代码规模增大,并且有多个文件的时候,全局变量就会变得比较混乱.你可能不知道在哪个文件中定义 ...

  3. Tomcat下配置JNDI的三种方式

    最近在整理项目上的配置文件,正好看到了数据源配置,想着配置方式有多种,便趁热打铁,记录下常规的Tomcat配置数据源的方式 1.单个工程配置 找到Tomcat下的server.xml文件,在Conte ...

  4. gitlab常用的命令

    git checkout . #本地所有修改的.没有的提交的,都返回到原来的状态git stash  #把所有没有提交的修改暂存到stash里面.可用git stash pop回复.git reset ...

  5. e.target.value和this的区别

    1.e.target.value获取的就是你选择接受事件的元素输入的或者选择的值. 参数e接收事件对象. 而事件对象也有很多属性和方法,其中target属性是获取触发事件对象的目标,也就是绑定事件的元 ...

  6. RDLC 传参 报表出现错误 (未解决)

    经过测试  可以用的 带传参的  RDLC  在vs2019上 能正常运行 但在vs2019上剪切后,保存, 运行就会报An error 错误, ctr+z 全部 撤销后 保存     一样会报  这 ...

  7. pycharm mysql数据源配置、SQL方言配置

    会发现有提示,看着不爽,但不影响运行程序, 这里提示没有配置数据源,现在配置MYSQL数据源 然后看到右边Database选项卡,点击 然后可能会出现网络防火墙提示,选择全部允许,之后可能会在pych ...

  8. learing cbor protocol

    https://tools.ietf.org/html/rfc7049 https://github.com/panzidongfamily/tinycbor

  9. 用python来抓取“煎蛋网”上面的美女图片,尺度很大哦!哈哈

    所用Python环境为:python 3.3.2   用到的库为:urllib.request    re 废话不多说,先上代码: import urllib.request import re #获 ...

  10. 利用简单的有限状态机(FSM)来实现一个简单的LED流水灯

    有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 有限状态机是指输出取决于过去 ...