Im Vergleich zum Vererbungsschreiben in C++ ist Python prägnanter und effizienter. Hier ist ein einfaches Python-Vererbungsbeispiel.
Klassenmitglied:
def __init__(self, name, age):
self.name = Name
self.age = Alter
print 'Member init:%s' % self.name
def tell(self):
print 'Name:%s,Age:%d' %(self.name , self.age),
Klasse Student(Mitglied):
def __init__(selbst, Name, Alter, Noten):
Mitglied.__init__(selbst, Name, Alter)
self.marks = Markierungen
print 'Student init:%s' % self.name
def tell(self):
Mitglied .tell(self)
print 'Marks:%d' % self.marks
class Teacher(Mitglied):
def __init__(self, Name, Alter, Gehalt ):
Member.__init__(self, name, age)
self.salary = Gehalt
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 member:
mem.tell()
Laufender Effekt:
[root@localhost hhl]
Member init:Tom
Student init :Tom
Mitglied init:Mrs.Huang
Lehrerin init:Mrs.Huang
Name:Tom,Alter:20 Noten:80
Name: Mrs.Huang,Alter:30 Gehalt:50000
Wir schreiben auch ein C++-Beispiel mit dem gleichen Effekt:
#include
#include < ;iostream> ;
using namespace std;
class Member
{
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(); privat: int marks; }; Student::Student(char *n, int a, int m):Member(n, a) { noten = 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(); privat: int Gehalt; }; Teacher::Teacher(char *n, int a, int s):Member(n, a) { salary = s; cout<<"Teacher init:"< } void Teacher::tell_t() { Member::tell(); cout<<"Gehalt:"< } 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 Mitglied init:Mrs.Huang Lehrerin init:Mrs.Huang Name:Tom,Alter:20,Noten:80 Name:Mrs.Huang ,Alter:30,Gehalt:50000 这两者的运行效果是一样的,但是python更简洁些。。 以上就是Python类与继承讲解的内容,更多相关内容请关注PHP中文网(www.php.cn)!