Objektorientiert ist eine weit verbreitete Idee in aktuellen Programmiersprachen. Python verfügt über eine sehr gute objektorientierte Implementierung. Gleichzeitig können mit Hilfe der flexiblen Syntax von Python einige coole objektorientierte Funktionen implementiert werden.
Python war von Anfang an eine objektorientierte Sprache. Aus diesem Grund ist es einfach, Klassen und Objekte in Python zu erstellen. In diesem Kapitel stellen wir die objektorientierte Programmierung in Python ausführlich vor.
Wenn Sie noch nie mit objektorientierten Programmiersprachen in Berührung gekommen sind, müssen Sie möglicherweise zunächst einige Grundfunktionen objektorientierter Sprachen verstehen und sich ein grundlegendes objektorientiertes Konzept ausdenken. Dies wird Ihnen helfen, die objektorientierte Programmierung in Python ganz einfach zu erlernen.
Als nächstes wollen wir kurz einige grundlegende Merkmale der Objektorientierung verstehen.
Was über objektorientiert zu lernen ist, sind nicht die Konzepte und andere Wissenspunkte, sondern die objektorientierte Denkweise:
Das Grundlegende Die Ideen der Objektorientierung sind Kapselung, Vererbung und Polymorphie.
Zuerst ist die Vererbung:
Definieren Sie eine Klasse:
Der Code lautet wie folgt:
class Bird(object): have_feather = True way_of_reproduction = 'egg'
Diese Klasse aufrufen:
Der Code lautet wie folgt:
summer = Bird() print summer.way_of_reproduction
Im Gegensatz zu Java benötigt Python kein New, um eine Klasse zu instanziieren.
In ähnlicher Weise können Python-Klassen die folgenden Methoden definieren:
Der Code lautet wie folgt:
class Bird(object): have_feather = True way_of_reproduction = 'egg' def say(self, word='hi hi'): print 'i say :' + word
Beachten Sie, dass alle Klassenfunktionen mindestens über Folgendes verfügen müssen ein Parameter, und dieser Parameter muss self sein.
Funktionen außerhalb der Klasse unterliegen dieser Einschränkung nicht.
Der Code lautet wie folgt:
chk = Chicken() print chk.have_feather print chk.sat('hello')
__init__()-Methode
__init__() ist eine spezielle Methode. Es wird einige spezielle Methoden in Python geben, und Python wird sie auf besondere Weise behandeln. Spezielle Methodennamen sind durch zwei Unterstriche davor und danach gekennzeichnet. Das Besondere an der Methode
__init__() ist, dass wenn Sie diese Methode in einer Klasse definieren, Python diese Methode automatisch aufruft, sobald Sie ein Objekt basierend auf dieser Klasse erstellen (dieser Vorgang wird auch Initialisierung genannt).
Zum Beispiel:
Der Code lautet wie folgt:
class happyBird(Bird): def __init__(self,more_words): print 'We are happy birds.',more_words hb = happyBird('Happy,Happy!')
Überladung der übergeordneten Klassenmethode:
Der Code lautet wie folgt:
class Hello(object): name = 'hello' def __init__(self): self.name='my name is hello' #类中的参数必须带有self参数 def sayhi(self): print 'hi you' class World(Hello): def __init__(self): #这里访问的是父类初始化的变量名 print 'before:',Hello.name super(World,self).__init__() #由于调用了父类的初始化构造函数,继承了父类的变量的改变 print 'after:',self.name #近似于方法重载 def sayhi(self,word='baby'): #调用父类sayhi方法 super(World,self).sayhi() print 'hi '+word def sayWorld(self): print 'hi,hello world' if __name__ == '__main__': c = World() c.sayhi() c.sayWorld()
Darüber hinaus ermöglicht Python die Mehrfachvererbung, dies ist jedoch ein sehr gefährlicher Vorgang und es wird empfohlen, ihn nicht beiläufig zu verwenden.
Was den Polymorphismus von Python betrifft, können Sie genau wie bei JavaScript direkt auf die Eigenschaften des Objekts zugreifen, ohne Schnittstellen zu verwenden und ohne Typkonvertierung.
Zur Typbeurteilung gibt es unsere Funktion type() und die Funktion isinstance(), um zu beurteilen, ob es sich um eine Unterklasse einer bestimmten Funktion handelt.
Kopieren Sie den Code wie folgt:
isinstance(object, classinfo)
Beurteilen Sie, ob die Instanz diese Klasse ist oder ob das Objekt eine Variable ist
classinfo ist ein Typ (tuple, dict, int, float)
Bestimmen Sie, ob die Variable von diesem Typ ist
Der Code lautet wie folgt:
class objA: pass A = objA() B = 'a','v' C = 'a string' print isinstance(A, objA) print isinstance(B, tuple) print isinstance(C, basestring)
Ausgabeergebnis:
Wahr
Wahr
Wahr
Das obige ist der detaillierte Inhalt vonObjektorientiertes Teilen von Videomaterial mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!