Maison >développement back-end >Tutoriel Python >Classes Python et héritage expliqués

Classes Python et héritage expliqués

黄舟
黄舟original
2016-12-24 17:18:201404parcourir

Par rapport à l'écriture d'héritage en C, Python est plus concis et efficace. Voici un exemple simple d'héritage Python.

Membre de la classe :

def __init__(self, name, age) :

self.name = nom

self.age = age

print 'Init membre:%s' % self.name

def tell(self):

print 'Name:%s,Age:%d' %(self.name , self.age),

élève de la classe (membre) :

def __init__(soi, nom, âge, notes) :

Member.__init__(soi, nom, age)

self.marks = marks

print 'Student init:%s' % self.name

def tell(self):

Membre .tell(self)

print 'Marks:%d' % self.marks

class Teacher(Membre):

def __init__(self, nom, âge, salaire ):

Member.__init__(self, name, age)

self.salary = salaire

print 'Teacher init:%s' % self.name

def tell(self):

Member.tell(self)

print 'Salary:%d' % self.salary

s = Student('Tom ', 20, 80)

t = Enseignant('Mme Huang', 30, 50000)

membres = [s, t]

pour moi dans les membres :

mem.tell()

Effet en cours d'exécution :

[root@localhost hhl]

Init membre : Tom

Init étudiant :Tom

Init membre:MmeHuang

Init enseignant:MmeHuang

Nom:Tom,Âge:20 Notes:80

Nom: Mme Huang, Âge : 30 ans Salaire : 50 000

Nous écrivons également un exemple en C avec le même effet :

#include

#include < ;iostream> ;

using namespace std;

class Member

{

void tell();

nom du personnage[10];

int age;

};

Membre::Membre(char *n, int a)

{

memcpy(name, n, sizeof(name));

age = a

cout<<"Init membre :"<

}

void Member::tell()

{

    cout<<"Nom :"<

}   

class Étudiant : public Membre   

{   

public :  

    Étudiant (char *n, int a, int m );   

    void tell_s();   

privé :   

    marques int ;   

} ;   

Étudiant::Étudiant(char *n, int a, int m):Membre(n, a)   

{   

    marques = m;   

    cout<<"Init étudiant :"<

}   

void Student::tell_s()   

{   

    Member::tell();   

    cout<<"Marques :"<

}   

prof de classe : public Membre   

{   

public :   

    Professeur(char *n, int a, int s );   

    void tell_t();   

privé :   

    salaire int ;   

} ;   

Professeur ::Professeur(char *n, int a, int s):Membre(n, a)   

{   

    salaire = s ;   

    cout<<"Init enseignant :"<

}   

void Teacher::tell_t()   

{   

    Membre::tell();   

    cout<<"Salaire :"<

}   

int main(void)   

{   

    Étudiant s("Tom", 20, 80);   

    Professeur t("Mme Huang", 30, 50000);   

    s.tell_s();   

    t.tell_t();   

    retourner 0 ;   

}  

运行效果:

[root@localhost hhl]  

Init membre :Tom   

Init étudiant :Tom   

Init membre :Mme Huang   

Init enseignant :Mme Huang   

Nom :Tom,Âge :20,Notes :80   

Nom :MmeHuang ,Âge : 30 ans, Salaire : 50000  

这两者的运行效果是一样的,但是python更简洁些。。

 以上就是Python类与继承讲解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn