Eine ausführliche Erklärung erklärt die Vererbung von Python-Klassen im Detail

迷茫
Freigeben: 2017-03-25 17:50:18
Original
1631 Leute haben es durchsucht

Vererbung von Python-Klassen (Erweitert 5)

1. Was ist Vererbung in Python?

Was ist Vererbung in Python:

  • Neue Klassen müssen nicht von Grund auf neu geschrieben werden

  • Die neue Klasse erbt von der vorhandenen Klasse und verfügt automatisch über alle Funktionen der vorhandenen Klasse

  • Die neue Klasse muss nur neue Funktionen schreiben, die vorhandenen Klassen fehlen >

    Automatisch alle Funktionen bestehender Klassen besitzen

Es müssen nur die fehlenden neuen Funktionen geschrieben werden
  • Geerbte Funktionen:
  • Die Unterklasse und die übergeordnete Klasse stehen in einer is-Beziehung
  • Funktionen der Python-Vererbung:

beginnt immer mit Wenn eine Klasse erbt
  • vergessen Sie nicht, super() aufzurufen.
  • init

  • 2. Eine Klasse in Python erben

  • 3. Bestimmen Sie den Typ in Python
  • Die Funktion isinstance() kann den Typ einer Klasse bestimmen Variable kann in den integrierten Datentypen von Python wie str, list und dict verwendet werden. In unseren benutzerdefinierten Klassen handelt es sich im Wesentlichen um Datentypen.

    4. Polymorphismus in Python

5. Mehrfachvererbung in Python

class Person(object):
    def init(self, name, gender):
        self.name = name
        self.gender = gender
class Teacher(Person):
    def init(self, name, gender, course):
        super(Teacher, self).init(name, gender)
        self.course = course

t = Teacher('Alice', 'Female', 'English')
print t.name
print t.course
Nach dem Login kopieren
Zusätzlich zum Erben von einer übergeordneten Klasse ermöglicht Python das Erben von mehreren übergeordneten Klassen Die Klassenvererbung wird als Mehrfachvererbung bezeichnet. Java kann keine Mehrfachvererbung haben

6. Abrufen von Objektinformationen in Python

class Person(object):
    def init(self, name, gender):
        self.name = name
        self.gender = gender

class Student(Person):
    def init(self, name, gender, score):
        super(Student, self).init(name, gender)
        self.score = score

class Teacher(Person):
    def init(self, name, gender, course):
        super(Teacher, self).init(name, gender)
        self.course = course

t = Teacher('Alice', 'Female', 'English')

print isinstance(t, Person)
print isinstance(t, Student)
print isinstance(t, Teacher)
print isinstance(t, object)
Nach dem Login kopieren
Gibt es neben der Verwendung von isinstance() noch eine andere Möglichkeit, um festzustellen, ob es sich um eine Instanz eines bestimmten Typs handelt? Wie kann ich es erhalten? Wie wäre es mit weiteren Informationen?

Zuerst können Sie die Funktion type() verwenden, um den Typ der Variablen abzurufen, die eine Typobjekt-Funktion
class Person(object):
    def init(self, name, gender):
        self.name = name
        self.gender = gender
    def whoAmI(self):
        return 'I am a Person, my name is %s' % self.name

class Student(Person):
    def init(self, name, gender, score):
        super(Student, self).init(name, gender)
        self.score = score
    def whoAmI(self):
        return 'I am a Student, my name is %s' % self.name

class Teacher(Person):
    def init(self, name, gender, course):
        super(Teacher, self).init(name, gender)
        self.course = course
    def whoAmI(self):
        return 'I am a Teacher, my name is %s' % self.name
        
        
import json

class Students(object):
    def read(self):
        return r'["Tim", "Bob", "Alice"]'

s = Students()

print json.load(s)
Nach dem Login kopieren

dir() zurückgibt, um alle Attribute der Variablen

abzurufen

dir() hat Attribute zurückgegeben. Es handelt sich um eine Liste von Zeichenfolgen. Um die Attribute des Objekts abzurufen oder festzulegen, müssen Sie die Funktionen getattr() und setattr() verwenden

class A(object):
    def init(self, a):
        print 'init A...'
        self.a = a

class B(A):
    def init(self, a):
        super(B, self).init(a)
        print 'init B...'

class C(A):
    def init(self, a):
        super(C, self).init(a)
        print 'init C...'

class D(B, C):
    def init(self, a):
        super(D, self).init(a)
        print 'init D...'
        
        
class Person(object):
    pass

class Student(Person):
    pass

class Teacher(Person):
    pass

class SkillMixin(object):
    pass

class BasketballMixin(SkillMixin):
    def skill(self):
        return 'basketball'

class FootballMixin(SkillMixin):
    def skill(self):
        return 'football'

class BStudent(BasketballMixin):
    pass

class FTeacher(FootballMixin):
    pass

s = BStudent()
print s.skill()

t = FTeacher()
print t.skill()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEine ausführliche Erklärung erklärt die Vererbung von Python-Klassen im Detail. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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