Heim  >  Artikel  >  Backend-Entwicklung  >  [Python-Lernen] Objektorientierte Programmierung

[Python-Lernen] Objektorientierte Programmierung

little bottle
little bottlenach vorne
2019-04-09 09:27:352162Durchsuche

Prozessorientierte Programmierung betrachtet ein Computerprogramm als eine Reihe von Befehlssätzen, also die sequentielle Ausführung einer Reihe von Funktionen . Um die Programmierung zu vereinfachen, werden prozessorientierte Funktionen weiterhin in Unterfunktionen unterteilt, das heißt, große Funktionen werden in kleine Funktionen zerlegt, um die Komplexität des Systems zu reduzieren.

Python und Java sind beide objektorientierte Sprachen. Merkmale der objektorientierten Programmierung Datenkapselung, Vererbung und Polymorphismus
1. Klassen und Instanzen
Die wichtigsten Konzepte der objektorientierten Programmierung sind Klassen und Instanzen), Sie müssen bedenken, dass eine Klasse eine abstrakte Vorlage ist, z. B. die Student-Klasse, und Instanzen spezifische „Objekte“ sind, die auf der Grundlage der Klasse erstellt werden. Jedes Objekt verfügt über dieselben Methoden, ihre Daten können jedoch unterschiedlich sein.
In Python wird das Schlüsselwort class auch zum Definieren einer Klasse verwendet. Auf die Klasse folgt der Klassenname, der am Anfang großgeschrieben werden muss. Die Klammern danach geben an, welche Klasse sie erbt, also ihre übergeordnete Klasse .

class Student(object):
    pass

Wir können Attribute frei an diese Variable binden

>>>nick.name = 'Liu Ling Hao'
>>>nick.name
'Liu Ling Hao'

und die verschiedenen später definierten Funktionen sind Methoden. Zusammenfassend lässt sich sagen: Objekt = Attribut + Methode
Da Klassen als Vorlagen fungieren können, können wir beim Erstellen einer Instanz das Ausfüllen einiger Attribute erzwingen, von denen wir glauben, dass sie gebunden werden müssen. Zu diesem Zeitpunkt müssen Sie die speziellere Methode __init__ verwenden. (Es gibt zwei Unterstriche vor und nach int)
Der erste Parameter der __init__-Methode ist immer self, was die erstellte Instanz selbst darstellt.

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = scor
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59

Wenn Sie die __init__-Methode haben, können Sie beim Erstellen einer Instanz keine leeren Parameter übergeben. Sie müssen Parameter übergeben, die der __init__-Methode entsprechen
2. Kapselung, Vererbung und Polymorphismus >Ein wichtiges Merkmal der objektorientierten Programmierung ist die Datenkapselung.
Genau wie der Name und die Punktzahl im obigen Beispiel können wir direkt über die in der Klasse definierten Funktionen darauf zugreifen. Wir können beispielsweise ein Datenelement hinzufügen oder eine Liste sortieren Ich weiß es nicht. Der Innenraum wird dadurch erreicht, wie er angepasst wird.

Wenn wir eine Klasse definieren, kann sie von einer vorhandenen Klasse erben. Die neue Klasse wird als Unterklasse (Subclass) bezeichnet, und die geerbte Klasse wird als Basisklasse oder übergeordnete Klasse bezeichnet Klasse (Basisklasse, Superklasse).

Der Vorteil der Vererbung besteht darin, dass Sie alle Funktionen der übergeordneten Klasse erhalten. Bei Unterklassen können Sie weiterhin auf Basis der übergeordneten Klasse schreiben, was bequemer ist

class Person(object):
    def idea(self):
        print('study is happy')class Liu(Person):
    pass
liu =Liu()liu.idea

study is happy

Natürlich, wenn die Unterklasse dieselbe Methode wie die übergeordnete Klasse hat, überschreibt sie automatisch den

Polymorphismus der übergeordneten Klasse: Verschiedene Objekte reagieren auf unterschiedliche Aktionen für dieselbe Methode

>>>class Nick1:
    def name(self):
          	 print("我是1")
>>>class Nick2:
    def name(self):
    		 print("我是2") 
>>>a = Nick1()
>>>b = Nick2()
>>>a.name
我是1
>>>b.name
我是2

Obwohl die verwendeten Funktionsnamen gleich sind, sind die Implementierungen unterschiedlich.

def run(animal):
    animal.run()
    animal.run()
    >>> run(Animal())
Animal is running...
Animal is running...
>>> run_twice(Dog())
Dog is running...
Dog is running...

Der Vorteil des Polymorphismus besteht darin, dass wir, wenn wir Hunde oder andere Tiere übergeben müssen, nur den Tiertyp empfangen müssen, da Hunde alle Tiertypen sind, und dann entsprechend dem Tiertyp arbeiten müssen. Da der Animal-Typ über eine run()-Methode verfügt, ruft jeder übergebene Typ, sofern es sich um eine Animal-Klasse oder Unterklasse handelt, automatisch die run()-Methode des tatsächlichen Typs auf. Dies ist Polymorphismus.

[Empfohlener Kurs:

Python-Video-Tutorial]

Das obige ist der detaillierte Inhalt von[Python-Lernen] Objektorientierte Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen