X Tutup
Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 2.47 KB

File metadata and controls

63 lines (47 loc) · 2.47 KB
title Python classmethod()-Funktion – Python Spickzettel
description Wandelt eine Methode in eine Klassenmethode um. Eine Klassenmethode empfängt die Klasse als implizites erstes Argument, genau wie eine Instanzmethode die Instanz empfängt.
Python classmethod() eingebaute Funktion Aus der Python 3 Dokumentation Transformiert eine Methode in eine Klassenmethode. Eine Klassenmethode empfängt die Klasse als implizites erstes Argument, genau wie eine Instanzmethode die Instanz empfängt.

Einführung

Eine classmethod ist eine Methode, die an die Klasse gebunden ist und nicht an die Instanz der Klasse. Sie nimmt die Klasse selbst als ihr erstes Argument entgegen, das konventionell cls genannt wird. Dies steht im Gegensatz zu einer regulären Instanzmethode, die die Instanz als ihr erstes Argument (self) entgegennimmt.

Sie werden oft für Factory-Methoden verwendet, die Instanzen der Klasse auf eine bestimmte Weise erstellen.

Beispiel

Hier ist ein häufiger Anwendungsfall: Erstellen einer Factory-Methode, die die Klasse aus einem anderen Datenformat, wie einem Dictionary, instanziieren kann.

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

    @classmethod
    def from_dict(cls, data):
        # Dies ist eine Factory-Methode, die eine Person-Instanz aus einem Dictionary erstellt
        return cls(data['name'], data['age'])

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Daten für eine neue Person
person_data = {'name': 'John', 'age': 30}

# Erstellen einer Person-Instanz mithilfe der Klassenmethode
p = Person.from_dict(person_data)

p.display()
Name: John, Age: 30

Relevante Links

  • Cheatsheet: OOP Grundlagen
  • Cheatsheet: Decorators
  • Cheatsheet: Funktionen
  • staticmethod()
  • property()
  • object()
X Tutup