[Python von Grund auf lernen] 39. Objektorientierte Grundgrammatik und Anwendungsbeispiele

Objektorientierte Grundgrammatik

In Python gibt es fast überall Objekte, und wir können dirintegrierte Funktionen verwenden, um die Methoden in diesem Objekt anzuzeigen.

Definieren Sie eine einfache Klasse (enthält nur Methoden)

Objektorientiert ist eine größere Kapselung, bei der mehrere Methoden in einer Klasse gekapselt werden, sodass über diese Klasse erstellte Objekte diese Methoden direkt aufrufen können!

Klasse definieren

Um eine Klasse zu definieren, die nur Methoden in Python enthält, lautet die Syntax wie folgt:

class 类名:
    def 方法1(self,参数列表):
        pass
    def 方法2(self,参数列表):
        pass

Das Definitionsformat der Methode ist das gleiche wie das der zuvor erlernten Funktion. Der erste Parameter in der Methode muss sein self. Bitte merken Sie sich ihn zunächst und führen Sie ihn später ein self. Klassennamen müssen der oberen CamelCase-Namenskonvention folgen.

Erstellen Sie ein Instanzobjekt

Nachdem eine Klasse definiert wurde, muss diese Klasse zum Erstellen eines Objekts verwendet werden. Die Syntax lautet wie folgt:

对象变量名 = 类名()

erster objektorientierter Code

brauchen

Das Kätzchen isst gerne Fisch und möchte Wasser trinken.

analysieren

  • Definieren Sie eine Katzenklasse Cat.
  • Definieren Sie zwei Methoden eatund drink.
  • Nach Bedarf – es müssen keine Eigenschaften definiert werden.
class Cat:
    """这是个猫类"""

    def eat(self):
        print("小猫在吃东西")

    def drink(self):
        print("小猫在喝水")

tom = Cat()  # 创建了一个Cat对象
tom.eat()
tom.drink()

hello_kitty = Cat()  # 又创建了一个新的Cat对象
hello_kitty.eat()
hello_kitty.drink()

Denken: tomIst und hello_kittydasselbe Objekt?

Selbstgebrauch

Eigenschaften zu Objekten hinzufügen

Python unterstützt dynamische Attribute. Wenn ein Objekt erstellt wird, 对象.属性名 = 属性值können Sie dem Objekt einfach ein Attribut hinzufügen, indem Sie es direkt verwenden.

tom = Cat()
tom.name = 'Tom'  # 可以直接给 tom 对象添加一个 name 属性

Diese Methode ist praktisch, es wird jedoch nicht empfohlen, auf diese Weise Eigenschaften zu Objekten hinzuzufügen.

Der Begriff des Selbst

Welches Objekt die Methode aufruft, selfwer in der Methode referenziert wird. Über self.属性名die Eigenschaften dieses Objekts kann zugegriffen werden; über self.方法名()die Methode dieses Objekts kann aufgerufen werden.

class Cat:
    def eat(self):
        print("%s爱吃鱼" % self.name)

tom = Cat()
tom.name = 'Tom'  # 给 tom 对象添加了一个name属性
tom.eat()  # Tom爱吃鱼

lazy_cat = Cat()
lazy_cat.name = "大懒猫"
lazy_cat.eat() # 大懒猫爱吃鱼

Nachteile des direkten Hinzufügens von Eigenschaften zu Objekten

Im obigen Code erstellen wir zuerst das Objekt und fügen dann das Namensattribut zum Objekt hinzu. Dabei treten jedoch Probleme auf.

tom = Cat()
tom.eat()
tom.anme = "Tom"

Wenn das Programm ausgeführt wird, wird ein Fehler gemeldet:

AttributeError: 'Cat' object has no attribute 'name'

Fehlermeldung: Das „Cat“-Objekt hat kein „Name“-Attribut.

In der täglichen Entwicklung wird nicht empfohlen, Eigenschaften direkt zu Objekten außerhalb der Klasse hinzuzufügen. Welche Eigenschaften das Objekt haben soll, sollten wir in der Klasse kapseln.

Fortgeschrittener Fall

[Python] Python erkennt das Wort-Ratespiel – fordern Sie Ihre Intelligenz und Ihr Glück heraus!

[Python] Die Python-tkinter-Bibliothek implementiert ein GUI-Programm für den Gewichtseinheitenkonverter

[Python] Verwenden Sie Selenium, um (2023 Blog Star)-Einträge zu erhalten

[Python] Verwenden Sie Selenium und Chrome WebDriver, um Artikelinformationen im [Tencent Cloud Studio Practical Training Camp] zu erhalten.

Verwenden Sie Tencent Cloud Cloud Studio, um die Planung von Baidu AI zur Realisierung der Texterkennung zu realisieren

[Spaß mit der Python-Serie [Xiaobai muss gesehen werden] Python-Multithread-Crawler: Laden Sie Bilder von Emoticon-Paket-Websites herunter

[Play with Python-Serie] [Muss für Xiaobai gesehen werden] Verwenden Sie Python, um historische Daten von Shuangseqiu zu crawlen und visuell zu analysieren

[Mit der Python-Serie spielen] [Muss für Xiaobai gesehen werden] Verwenden Sie die Python-Crawler-Technologie, um Proxy-IP abzurufen und in einer Datei zu speichern

[Muss für Xiaobai gesehen werden] Beispiel für die Python-Bildsynthese unter Verwendung der PIL-Bibliothek, um die Synthese mehrerer Bilder nach Rängen und Spalten zu realisieren

[Xiaobai muss sehen] Der tatsächliche Kampf des Python-Crawlers lädt Bilder von Göttinnen stapelweise herunter und speichert sie lokal

[Xiaobai muss sehen] Detaillierte Analyse und Codeimplementierung des Python-Wortwolkengenerators

[Xiaobai muss sehen] Python crawlt ein Beispiel für NBA-Spielerdaten

[Muss für Xiaobai gesehen werden] Beispielcode zum Crawlen und Speichern von Himalaya-Audio mit Python

[Muss für Xiaobai gesehen werden] Technische Umsetzung der Verwendung von Python zum stapelweisen Herunterladen von League of Legends-Skin-Bildern

[Xiaobai muss sehen] Python-Crawler-Datenverarbeitung und -visualisierung

[Muss für Xiaobai gesehen werden] Python-Crawler-Programm zum einfachen Erhalten von Helden-Skin-Bildern von King of Glory

[Muss für Xiaobai gesehen werden] Verwenden Sie Python, um ein personalisiertes Listen-Word-Dokument zu erstellen

[Muss für Xiaobai gesehen werden] Python-Crawler-Kampf: Holen Sie sich Bilder von der Onmyoji-Website und speichern Sie sie automatisch

Die unverzichtbare Serie des Bibliotheksverwaltungssystems von Xiaobai – Beispielcode für Anmelde- und Registrierungsfunktionen

100 Fälle von Xiaobais tatsächlichem Kampf: Ein vollständiges und einfaches Shuangseqiu-Lotterie-Gewinnbeurteilungsprogramm, geeignet für den Einstieg in Xiaobai

Geodatenverarbeitung und Visualisierung mit Geopandas und Shapely (.shp)

Verwenden Sie Selen, um die Daten der Maoyan-Filmliste zu crawlen

Ausführliche Erläuterung des Prinzips und der Implementierung des Bildverbesserungsalgorithmus Retinex

Leitfaden zum Einstieg in Crawler (8): Schreiben Sie Crawler-Programme für Wetterdaten zur visuellen Analyse

Einführungsleitfaden für Crawler (7): Verwendung von Selenium und BeautifulSoup zum Crawlen von Douban Movie Top250 Beispielerklärung [Reptile Xiaobai muss sich ansehen]

Leitfaden zum Einstieg in Crawler (6): Anti-Crawler und fortgeschrittene Fähigkeiten: IP-Proxy, User-Agent-Verkleidung, Cookie-Bypass-Anmeldeüberprüfung und Tools zur Identifizierung von Bestätigungscodes

Einführungsleitfaden zu Crawlern (5): Verteilte Crawler und Parallelitätskontrolle [Implementierungsmethoden zur Verbesserung der Crawling-Effizienz und Anforderungsrationalitätskontrolle]

Erste Schritte mit Crawlern (4): Der beste Weg, dynamische Webseiten mit Selenium und API zu crawlen

Leitfaden zum Einstieg in Crawler (3): Python-Netzwerkanfragen und gängige Anti-Crawler-Strategien

Erste Schritte mit Crawlern (2): Verwendung regulärer Ausdrücke zur Datenextraktion und -verarbeitung

Erste Schritte mit Reptilien (1): Lernen Sie die Grundlagen und Fähigkeiten von Reptilien

Anwendung des Deep-Learning-Modells in der Bilderkennung: CIFAR-10-Datensatzpraxis und Genauigkeitsanalyse

Grundlagen der objektorientierten Python-Programmierung und Beispielcode

Anleitung zum Betrieb einer MySQL-Datenbank: Erfahren Sie, wie Sie mit Python Vorgänge hinzufügen, löschen, ändern und abfragen

Anleitung zum Betrieb von Python-Dateien: Kodierung, Lesen, Schreiben und Ausnahmebehandlung

Verwenden Sie Python und Selenium, um das Crawlen zu automatisieren

Python-Multithread- und Multiprozess-Tutorial: umfassende Analyse, Codefälle und Optimierungsfähigkeiten

Selenium Automation Toolset – Vollständiger Leitfaden und Tutorials

Von den Grundlagen des Python-Webcrawlers bis hin zum eigentlichen Kampf-Tutorial

Python-Einführungs-Tutorial: Beherrschen Sie die Grundkenntnisse der For-Schleife, der While-Schleife, der String-Operation, des Lesens und Schreibens von Dateien sowie der Ausnahmebehandlung

Tutorial zur Pandas-Datenverarbeitung und -Analyse: von den Grundlagen bis zum tatsächlichen Kampf

Detaillierte Erläuterung häufig verwendeter Datentypen und zugehöriger Vorgänge in Python

[Neueste Version im Jahr 2023] Detaillierte Erläuterung von sechs wichtigen Maßnahmen zur Verbesserung des Index des Klassifizierungsmodells

Einführende Grundlagen und fortgeschrittene Kenntnisse der Python-Programmierung, Webentwicklung, Datenanalyse sowie maschinelles Lernen und künstliche Intelligenz

Diagrammvorhersageergebnisse mit 4 Regressionsmethoden: Vektorregression, Random Forest-Regression, lineare Regression, K-Nearest Neighbors-Regression

Ich denke du magst

Origin blog.csdn.net/qq_33681891/article/details/132355645
Empfohlen
Rangfolge