Python中类的继承代码实例
发布时间:2020-12-16 20:09:43 所属栏目: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 i
相对于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,age,marks): Member.__init__(self,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,salary): Member.__init__(self,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 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 s); void tell_t(); private: int salary; }; Teacher::Teacher(char *n,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",80); Teacher t("Mrs.Huang",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更简洁些。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |