Compared with inheritance writing in C++, Python is more concise and efficient. Here is a simple Python inheritance example. EClass Member:
DEF __init __ (Self, name, Age):
Self.name = name
Self.age = Age
Print 'Member init:%s'%self.name
DEF TELL ( Self): in Print 'Name:%S, Age:%D'%(Self.name, Self.age),
Class Student (Member):
DEF __init __ (Self, Name, Age, Marks):
‐ Member.__init__ self.marks
def tell(self): " Member.__init__(self, name, age)
salary = salary
Print 'Teacher Init:%s'%seld.name
deftell (self):
member.tell (self)
print' salary:%d'%seld.salarly
s = Student('Tom', 20, 80)
t = Teacher('Mrs.Huang', 30, 50000)
members = [s, t]
for mem in members:
mem.tell()
Running effect:
[root@localhost hhl]
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
We also write a C++ example with the same effect:
#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<< init:" < } void Member::tell() { cout<<"Name:"< } 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:"< } void Student::tell_s() { Member::tell(); cout<<"Marks:"< } 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:"< } void Teacher::tell_t() { Member::tell(); cout<<"Salary:"< } 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] 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类与继承讲解的内容,更多相关内容请关注PHP中文网(www.php.cn)!