香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python中类的继承代码实例


时间:2021-11-09 10:25 作者:admin610456


相对于C++的继承编写,python/' target='_blank'>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 <string.h>
#include <iostream>
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更简洁些。。。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)