相对于C++的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。
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]
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++例子:
#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:"< } 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)!