„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was ist der Unterschied zwischen Instanzmethoden und Klassenmethoden in Python?

Was ist der Unterschied zwischen Instanzmethoden und Klassenmethoden in Python?

Veröffentlicht am 06.11.2024
Durchsuche:143

What is the difference between instance methods and class methods in Python?

Klasse vs. Instanzmethoden

Pythons PEP 8-Styleguide empfiehlt die Verwendung von „self“ für die ersten Argumente der Instanzmethode und „cls“ für die Klasse Methode erste Argumente. Das Verständnis der Unterscheidung zwischen diesen beiden Arten von Methoden ist für eine effektive objektorientierte Programmierung von entscheidender Bedeutung.

Instanzmethoden

Instanzmethoden sind bestimmten Instanzen einer Klasse zugeordnet. Sie verarbeiten die Daten der Instanz und erhalten typischerweise „self“ als erstes Argument. Beim Zugriff auf eine Instanzmethode wie beispielsweise object.method() wird die Instanz automatisch an die Methode übergeben.

Bedenken Sie beispielsweise die folgende Klassendefinition:

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print("Hello, my name is", self.name)

Hier ist „greet()“ eine Instanzmethode, die auf jeder Instanz der Klasse „Person“ mit „object.greet( )".

Klassenmethoden

Klassenmethoden hingegen sind mit der Klasse selbst und nicht mit einzelnen Instanzen verknüpft. Als erstes Argument erhalten sie „cls“, das die Klasse repräsentiert. Klassenmethoden werden für Aufgaben verwendet, die sich auf die Klasse als Ganzes beziehen, beispielsweise das Erstellen neuer Instanzen oder den Zugriff auf Daten auf Klassenebene.

Der folgende Codeausschnitt veranschaulicht eine Klassenmethode:

class Math:
    @classmethod
    def sum(cls, a, b):
        return a   b

Die Methode „Math.sum()“ benötigt zwei Argumente, die addiert und zurückgegeben werden. Da es sich um eine Klassenmethode handelt, können Sie sie direkt als Math.sum(1, 2) aufrufen, um das Ergebnis zu erhalten.

Durch das Verständnis des Unterschieds zwischen Instanz- und Klassenmethoden können Entwickler die gesamten Funktionen des Objekts effektiv nutzen -orientierte Programmierung in Python.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3