Heim >Backend-Entwicklung >Python-Tutorial >Eine ausführliche Erklärung erklärt die Vererbung von Python-Klassen im Detail
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 besitzenDie 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 Pythonclass 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.courseZusä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)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)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()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!