Python-Klassen und Vererbung erklärt

黄舟
Freigeben: 2016-12-24 17:18:20
Original
1395 Leute haben es durchsucht

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)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage