Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Grundkonzepte von Python objektorientiert

Einführung in die Grundkonzepte von Python objektorientiert

高洛峰
高洛峰Original
2017-03-17 16:30:581365Durchsuche

Python verwendet Klassen (Klasse) und Objekte (Objekt), um objektorientierte Programmierung (OOP) durchzuführen.

Der Hauptzweck der Objektorientierung besteht darin, die Wiederverwendbarkeit von Programmen zu verbessern. Der Grund, warum wir so früh mit der objektorientierten Programmierung begonnen haben, ist, dass das gesamte Konzept von Python auf Objekten basiert. Das Verständnis von OOP ist der Schlüssel zum weiteren Erlernen von Python.

Das Folgende ist ein objektorientiertes Verständnis, basierend auf der Klassifizierung.

Ähnliche Objekte werden in Kategorien eingeteilt

In der menschlichen Wahrnehmung werden Dinge nach der Ähnlichkeit von

Attributen klassifiziert und die Kategorien werden benannt. Das gemeinsame Merkmal von Vögeln ist beispielsweise, dass sie Federn haben und durch das Legen von Eiern Nachkommen produzieren. Jeder einzelne Vogel basiert auf dem Prototyp eines Vogels.

Objektorientiert simuliert den oben genannten menschlichen kognitiven Prozess. Um cool zu klingen, nennen wir in der Python-Sprache die oben genannten „Dinge“ Objekte.

Zuerst Vögel definieren

class Bird(object):
    have_feather = True
    way_of_reproduction  = 'egg'
Wir definieren eine Kategorie (Klasse), nämlich Vogel. Im Anweisungsblock, der zu dieser Analogie gehört, definieren wir zwei

-Variablen , eine davon ist die Art der Fortpflanzung (way_of_reproduktion). Diese beiden Variablen entsprechen den Attributen, die wir gerade erwähnt haben (). Attribute). Wir werden die Klammern und ihren Inhalt vorerst nicht erläutern und sie als Frage 1 markieren.

Angenommen, ich ziehe ein Küken namens Sommer auf. Es ist ein Objekt und gehört den Vögeln. Verwenden Sie die zuvor definierte Klasse:

summer = Bird()
print summer.way_of_reproduction
Erstellen Sie das Objekt

bis zum ersten Satz und erklären Sie, dass „Sommer“ ein Objekt in der Kategorie „Vogel“ ist Die Attribute Die Referenz wird in Form von object.attribute implementiert.

Armer Sommer, du bist nur ein haariges Ei, du bist so zart.

Aktion

Wenn wir in der täglichen Wahrnehmung Kategorien anhand von Attributen identifizieren, unterscheiden wir manchmal Kategorien basierend darauf, was dieses Ding tun kann. Vögel bewegen sich zum Beispiel. Auf diese Weise wird der Vogel von der Kategorie Haus unterschieden. Diese Aktionen führen zu bestimmten Ergebnissen, beispielsweise zu einer Bewegung, die zu Positionsänderungen führt.

Einige dieser „

Verhalten“-Attribute sind Methoden. In Python werden Methoden durch die Definition von Funktionen innerhalb der Klasse beschrieben.

Wir haben die Vogelkategorie neu definiert. Bird
class Bird(object):
    have_feather = True
    way_of_reproduction = 'egg'
    def move(self, dx, dy):
        position = [0,0]
        position[0] = position[0] + dx
        position[1] = position[1] + dy
        return position
summer = Bird()
print 'after move:',summer.move(5,8)
fügt

ein Methodenattribut hinzu, bei dem es sich um die Methode move handelt, die die Bewegung darstellt. (Ich gebe zu, dass diese Methode albern ist. Sie können eine interessantere Methode definieren, nachdem Sie die nächste Vorlesung gelesen haben.) (In seinen Parametern gibt es ein Selbst, das es uns erleichtern soll, auf das Objekt selbst zu verweisen. Das Methode Der erste Parameter muss self sein, unabhängig davon, ob er verwendet wird oder nicht. Der Inhalt über self wird in der nächsten Vorlesung erweitert.

Die anderen beiden Parameter dx, dy stellen die in x- und y-Richtung zurückgelegte Distanz dar . Die Move-Methode gibt schließlich die berechnete Position zurück.

Als wir schließlich die Move-Methode aufgerufen haben, haben wir nur die beiden Parameter dx und dy übergeben und es war nicht nötig, den Parameter self zu übergeben (da self nur für den internen Gebrauch bestimmt ist).

Mein Sommer kann davonlaufen.

Unterkategorien

Die Kategorien selbst können weiter in Unterkategorien unterteilt werden

Vögel können beispielsweise weiter in Hühner, Wildgänse und Pirols unterteilt werden.

In OOP drücken wir das obige Konzept durch

Vererbung

(Vererbung) aus.

Die neu definierte Chicken-Klasse fügt zwei Attribute hinzu: way_of_move, die in KFC zu finden sind (possible_in_KFC)
class Chicken(Bird):
    way_of_move = 'walk'
    possible_in_KFC = True
class Oriole(Bird):
    way_of_move = 'fly'
    possible_in_KFC = False
summer = Chicken()
print summer.have_feather
print summer.move(5,8)

Beim Definieren der Klasse werden hier Klammern für Bird verwendet. Dies zeigt, dass Chicken eine Unterklasse von Bird ist, das heißt, Chicken erbt von Bird. Natürlich ist Bird die übergeordnete Klasse von Chicken. Huhn genießt alle Eigenschaften von Bird. Obwohl ich nur erklärt habe, dass Summer eine Chicken-Klasse ist, genießt sie die Attribute der übergeordneten Klasse durch Vererbung (sei es das Variablenattribut have_feather oder das Methodenattribut move).

Die neu definierte Oriole-Klasse (Oriole) auch erbt von Vögeln. Wenn Sie ein Pirolobjekt erstellen, weist das Objekt automatisch die Eigenschaften des Vogels auf.

Durch das Vererbungssystem können wir wiederholte Informationen und wiederholte Anweisungen im Programm reduzieren. Wenn wir zwei Klassen separat definieren, ohne von Vögeln zu erben, müssen wir die Attribute von Vögeln in die Definitionen der Hühner- bzw. Pirol-Klassen eingeben. Der gesamte Prozess kann langwierig werden, daher verbessert die Objektorientierung die Wiederverwendbarkeit des Programms.

(Zurück zu Frage 1, das Objekt in den Klammern. Wenn die Klammern ein Objekt sind, bedeutet dies, dass diese Klasse keine übergeordnete Klasse hat (das Ende))

Kategorisieren Sie verschiedene Dinge, um die Welt zu verstehen. Wir praktizieren diesen kognitiven Prozess seit unseren Vorfahren. Objektorientiert ist im Einklang mit menschlichen Denkgewohnheiten. Das sogenannte prozessorientierte Denken, also das Ausführen einer Anweisung vor der nächsten, ist eher maschinelles Denken. Durch objektorientierte Programmierung können wir komplexe Ideen in unserem Denken bequemer ausdrücken.

Zusammenfassung

Dinge nach Attributen kategorisieren (Objekte als Klassen klassifizieren)

Eine Methode ist ein Attribut, das eine Aktion darstellt

Vererbung zur Veranschaulichung des übergeordneten Elements verwenden Klassen-Kind-Klassenbeziehung. Unterklassen verfügen automatisch über alle Eigenschaften der übergeordneten Klasse.

self stellt ein Objekt dar, das basierend auf der Klassendefinition erstellt wurde.

Erstellen Sie ein Objekt: Objektname = Klassenname()

Referenzieren Sie die Attribute des Objekts: object.attribute


Das obige ist der detaillierte Inhalt vonEinführung in die Grundkonzepte von Python objektorientiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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