Es ist eine grundlegende Geschichte, weil mein Bekannter stolperte.
Angenommen, Sie definieren die folgende Klassenmethode in Python:
python
class Parent(object):
name = "Parent"
@classmethod
def get_name(cls):
return cls.name
class Child(Parent):
name = "Child"
Was wird übrigens ausgegeben, wenn zu diesem Zeitpunkt von Child aufgerufen wird?
python
In : Child.get_name()
OUT: "Child"
Grundsätzlich bindet das erste in class definierte Argument die aufgerufene Instanz oder die Klasse selbst. Selbst wenn es geerbt wird, wird daher die Klasse am geerbten Ziel eingegeben. So ist es zum Beispiel in Ordnung, wenn Sie keine so seltsame Definition vornehmen.
python
class Child(Parent):
name = "Child"
get_name = Parent.get_name
In dieser Hinsicht hat die Methode im Wesentlichen den Kontext "wo sie hingehört". In diesem Fall wird die Methode also entsprechend dem Kontext des übergeordneten Referrers ausgeführt, unabhängig davon, um welche Klasse es sich handelt.