Heim > Backend-Entwicklung > Python-Tutorial > Erklären Sie die objektorientierte Kerngrundlage von Python

Erklären Sie die objektorientierte Kerngrundlage von Python

coldplay.xixi
Freigeben: 2020-12-14 17:40:46
nach vorne
3080 Leute haben es durchsucht

Python-Video-Tutorial In der Kolumne werden die grundlegenden objektorientierten Kernfunktionen vorgestellt

Python von Es wurde von Anfang an als objektorientierte Sprache konzipiert und aus diesem Grund ist es einfach, Klassen und Objekte in Python zu erstellen. Wenn Sie noch nie mit objektorientierten Programmiersprachen in Berührung gekommen sind, müssen Sie möglicherweise zunächst einige grundlegende Funktionen objektorientierter Sprachen verstehen und sich ein grundlegendes objektorientiertes Konzept ausdenken. Dies wird Ihnen beim Erlernen von Python helfen einfacher. Objektorientierte Programmierung. Erklären Sie die objektorientierte Kerngrundlage von Python

• Python ist eine objektorientierte Programmiersprache

• Die sogenannte objektorientierte Sprache, ein einfaches Verständnis ist, dass alle Operationen in der Sprache durch Objekte ausgeführt werdenProzedurorientiert

• Prozessorientiert bezieht sich auf uns Das Programm wird nacheinander in Schritte zerlegt und das Programm wird durch Abstrahieren jedes Schritts vervollständigt

• Diese Schreibmethode eignet sich häufig nur für eine Funktion. Wenn andere Funktionen implementiert werden sollen, ist die Wiederverwendbarkeit häufig gering. Mit dieser Programmiermethode lassen sich Symbole menschlichen Denkens einfacher schreiben • 1. Mama zieht Kleidung und Schuhe an und geht raus • 2. Mama fährt Elektrofahrrad

• 3. Mama stellt das Elektrofahrrad vor den Supermarkt
• 4 . Mama kauft Wassermelone

• 5 . Mama checkt aus

• 6. Mama fährt mit dem Elektrofahrrad nach Hause
• 7. Kinder essen Wassermelone, wenn sie nach Hause kommen
orientiert ist alles ein Objekt


• Oben Die Methode kann gelöst werden, indem die Mutter verwendet wird, um Melonen für das Kind zu kaufen , suchen Sie einfach direkt das entsprechende Objekt
• Diese Codierungsmethode ist relativ einfach zu lesen, leicht zu warten und leicht wiederzuverwenden. Der Schreibprozess entspricht jedoch nicht dem herkömmlichen Denken und ist relativ mühsam und Methoden. Es definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind. Objekte sind Instanzen von Klassen. Klassenvariablen: Klassenvariablen sind im gesamten instanziierten Objekt öffentlich. Klassenvariablen werden in der Klasse und außerhalb des Funktionskörpers definiert. Klassenvariablen werden im Allgemeinen nicht als Instanzvariablen verwendet.

Datenattribute: Klassenvariablen oder Instanzvariablen, die zur Verarbeitung von Daten im Zusammenhang mit Klassen und ihren Instanzobjekten verwendet werden.

Methodenumschreibung: Wenn die von der übergeordneten Klasse geerbte Methode die Anforderungen der Unterklasse nicht erfüllen kann, kann sie umgeschrieben werden. Dieser Vorgang wird als Methodenüberschreibung oder Methodenumschreiben bezeichnet.

Lokale Variablen: In Methoden definierte Variablen wirken sich nur auf die Klasse der aktuellen Instanz aus.

Instanzvariablen: In der Deklaration einer Klasse werden Attribute durch Variablen dargestellt. Solche Variablen werden Instanzvariablen genannt und innerhalb der Klassendeklaration, jedoch außerhalb anderer Mitgliedsmethoden der Klasse deklariert.

Vererbung: Eine abgeleitete Klasse erbt die Felder und Methoden einer Basisklasse. Durch Vererbung kann ein Objekt einer abgeleiteten Klasse auch als Basisklassenobjekt behandelt werden. Es gibt beispielsweise ein solches Design: Ein Objekt vom Typ Hund wird von der Klasse „Animal“ abgeleitet, die die „ist-ein“-Beziehung simuliert (z. B. „Hund ist ein Tier“).
Instantiierung: Erstellen Sie eine Instanz einer Klasse, ein bestimmtes Objekt der Klasse.
Objekt: Eine Instanz einer durch eine Klasse definierten Datenstruktur. Zu den Objekten gehören zwei Datenelemente (Klassenvariablen und Instanzvariablen) und Methoden.

    Die Idee der objektorientierten Programmierung (OOP) ist hauptsächlich für das Software-Design im großen Maßstab konzipiert. Die objektorientierte Programmierung kapselt Daten und Methoden im Zusammenhang mit dem Betrieb von Daten in Objekte und organisiert Code und Daten auf eine Weise, die dem menschlichen Denken näher kommt, wodurch das Programm skalierbarer und lesbarer wird und so die Programmiereffizienz erheblich verbessert wird.
  • Python übernimmt vollständig objektorientiertes Denken und ist eine wirklich objektorientierte Programmiersprache. Es unterstützt vollständig grundlegende objektorientierte Funktionen wie Vererbung, Polymorphismus, Kapselung usw.  In Python ist alles ein Objekt. Beispielsweise sind Datentypen, Funktionen usw. alles Objekte.
    • Python unterstützt mehrere Programmierparadigmen wie prozessorientierte, objektorientierte und funktionale Programmierung. Unterschiede zwischen objektorientiertem und prozessorientiertem:

    Ähnliche Punkte: Beides sind Denkweisen zur Lösung von Problemen und Möglichkeiten, Code zu organisieren.
    Unterschiede:
    Verfahrensorientiertes Denken: Prozessorientiert Beim Programmieren wird mehr auf den „logischen Ablauf des Programms“ geachtet und es handelt sich um eine Art „Ausführer“-Denken, das sich zum Schreiben kleiner Programme eignet.
    Objektorientiertes Denken: Objektorientiertes Denken konzentriert sich mehr auf die „Beziehung zwischen Objekten in Software“ und entspricht eher dem menschlichen Denken. Es ist ein „Designer“-Denken und eignet sich zum Schreiben umfangreicher Programme. Objektorientiert kann uns helfen, das gesamte System aus einer Makroperspektive zu erfassen und zu analysieren.
    Allerdings müssen die Mikrooperationen, die für den Implementierungsteil (also jede Methode) spezifisch sind, immer noch mit einem prozessorientierten Ansatz gehandhabt werden. Prozessorientiert und objektorientiert ergänzen sich gegenseitig, und objektorientiert kann nicht von prozessorientiert getrennt werden.
    Objektorientiertes Denken Wenn Sie auf komplexe Probleme stoßen, suchen Sie zunächst nach Substantiven aus dem Problem (prozessorientierter, suchen Sie nach Verben), bestimmen Sie dann, welche dieser Substantive als Klassen verwendet werden können, und bestimmen Sie dann die Attribute und Methoden davon Bestimmen Sie die Beziehungen zwischen den Klassen basierend auf den Anforderungen des Problems. 2. Klasse (Klasse) Wir müssen oft einige Objekte anpassen

    Die List-Item-Klasse wird einfach als äquivalent zu einer Zeichnung verstanden. In der Programmzusammenfassung müssen wir Objekte basierend auf der Klasse erstellen.

    Eine Klasse ist eine Zeichnung eines ObjektsWir nennen ein Objekt auch eine Instanz einer Klasse

      Wenn mehrere Objekte durch eine Klasse erstellt werden, nennen wir diese Objekte eine Klasse von Objekten
    • Eine Klasse ist auch ein Objekt und Eine Klasse wird verwendet. Um ein Objekt zu erstellen, können Sie dem Objekt Variablen hinzufügen. Die Variablen im Objekt werden als Attributsyntax bezeichnet: Objekt.Eigenschaftsname = Attributwert
class MyClass():
    pass
Nach dem Login kopieren
    Die Klasse ist abstrakt und wird auch als „Vorlage“ bezeichnet des Objekts" ". Wir müssen über die Klassenvorlage ein Instanzobjekt der Klasse erstellen und können dann die von der Klasse definierten Funktionen verwenden.
  • In Python bestehen Python-Objekte aus mehreren Teilen:

  • Objektinstanziierung
mc = MyClass()mc1 = MyClass()mc2 = MyClass()mc3 = MyClass()
Nach dem Login kopieren
  • Also müssen wir die Konstruktormethode
  • init() definieren, die dem von uns definierten Objekt zugewiesene Eigenschaften bereitstellt Objekt im Objekt. Die Konstruktormethode wird verwendet, um eine „Initialisierung des Instanzobjekts“ durchzuführen, dh nach der Erstellung des Objekts werden die relevanten Eigenschaften des aktuellen Objekts initialisiert und es gibt keinen Rückgabewert. Die wichtigsten Punkte von

    init
    () sind wie folgt:

    Der Name ist fest und muss lauten: init()Erklären Sie die objektorientierte Kerngrundlage von Python Der erste Parameter ist fest und muss lauten: self. self bezieht sich auf das gerade erstellte Instanzobjekt.

    Der Konstruktor wird normalerweise zum Initialisieren der Instanzattribute des Instanzobjekts verwendet. In Beispiel 1 werden beispielsweise die Instanzattribute initialisiert: Name und Sound.
      Der Konstruktor wird über den „Klassennamen (Parameterliste)“ aufgerufen. Nach dem Aufruf wird das erstellte Objekt an die entsprechende Variable zurückgegeben. Zum Beispiel: cat = Animal('Little Flower','Meow Meow')
    • __init __() Methode: Initialisieren Sie das erstellte Objekt. Initialisierung bezieht sich auf: „Zuweisen von Werten zu Instanzattributen“ __new __() Methode: Verwendet um Objekte zu erstellen, aber wir müssen diese Methode im Allgemeinen nicht neu definieren. Wenn wir die Methode __init__ nicht definieren, stellt das System eine Standardmethode __init__ bereit. Wenn wir die Methode __init__ mit Parametern definieren, erstellt das System keine Standardmethode __init__.
    • Hinweis:
    self in Python entspricht dem self-Zeiger in C++ und dem Schlüsselwort this in JAVA und C#. In Python muss self der erste Parameter des Konstruktors sein und der Name kann beliebig geändert werden. Befolgen Sie jedoch im Allgemeinen die Konvention und nennen Sie es sich selbst.

    3. Definition einer Klasse Methodenname() • Der Unterschied zwischen Convenience Call und Funktionsaufruf: Wenn es sich um einen Funktionsaufruf handelt und während des Aufrufs mehrere formale Parameter vorhanden sind, werden mehrere tatsächliche Parameter übergeben. Wenn es sich um einen Methodenaufruf handelt, wird standardmäßig ein Parameter übergeben, daher muss die Methode mindestens einen formalen Parameter haben • Im Klassencodeblock können wir Variablen und Funktionen definieren

    • Die Variablen werden zu öffentlichen Eigenschaften der Klasseninstanz , und auf alle Instanzen der Klasse kann in der Form „object.property name“ zugegriffen werden.

    • Die Funktion wird zu einer öffentlichen Methode der Klasseninstanz, und auf alle Instanzen dieser Klasse kann in der Form „object.method“ zugegriffen werden name

    class Person():
        name = '奥特曼'
        def speak(w):
            print('我能说话')a = Person()b = Person()a.name = '葫芦娃'print(a.name)print(b.name)print(a.speak())print(b.speak())
    Nach dem Login kopieren

    4. Parameter self

    • 属性和方法

    • 类中定义的属性和方法都是公共的,任何该类实例都可以访问
    • 属性和方法的查找流程
    • 当我们调用一个对象的属性时,解析器会现在当前的对象中寻找是否还有该属性,如果有,则直接返回当前的对象的属性值。如果没有,则去当前对象的类对象中去寻找,如果有则返回类对象的属性值。如果没有就报错
    • 类对象和实例对象中都可以保存属性(方法)
    • 如果这个属性(方法)是所以的实例共享的,则应该将其保存到类对象中
    • 如果这个属性(方法)是摸个实例独有的。则应该保存到实例对象中
    • 一般情况下,属性保存到实例对象中 而方法需要保存到类对象中

    • self

    方法是从属于实例对象的方法。实例方法的定义格式如下:
     
        def 方法名(self ,[形参列表]):
          函数体

    方法的调用格式如下:
        对象.方法名([实参列表]) 要点:

    定义实例方法时,第一个参数必须为 self。和前面一样,self 指当前的实例对象。 调用实例方法时,不需要也不能给 self
    传参。self 由解释器自动传参 函数和方法的区别

    都是用来完成一个功能的语句块,本质一样。 方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。
    直观上看,方法定义时需要传递 self,函数不需要。 实例对象的方法调用本质: alt

    类中其他操作:

    dir(obj)可以获得对象的所有属性、方法 obj.dict 对象的属性字典 pass 空语句,相当于占位符。
    isinstance(对象,类型) 判断“对象”是不是“指定类型”。

    class Person():
    
        def speak(self):
            print('你好我是%s' % self.name)
    
        def read(self):
            passa = Person()b = Person()a.name = '葫芦娃'b.name = '奥特曼'a.speak()b.speak()结果:
    C:\Users\giser\AppData\Local\Programs\Python\Python37\python.exe D:/pycharm/pythonbasic/day09.py
    你好我是葫芦娃
    你好我是奥特曼
    
    Process finished with exit code 0
    Nach dem Login kopieren

                     

    Das obige ist der detaillierte Inhalt vonErklären Sie die objektorientierte Kerngrundlage von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:csdn.net
    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
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage