C'est une histoire basique parce que ma connaissance trébuchait.
Par exemple, supposons que vous définissiez la méthode de classe suivante en Python:
python
class Parent(object):
name = "Parent"
@classmethod
def get_name(cls):
return cls.name
class Child(Parent):
name = "Child"
À propos, qu'est-ce qui est généré lors de l'appel de Child à ce moment?
python
In : Child.get_name()
OUT: "Child"
Fondamentalement, le premier argument défini dans class lie l'instance appelée ou la classe elle-même. Par conséquent, même si elle est héritée, la classe à la destination héritée sera entrée. Donc, par exemple, ce n'est pas grave si vous ne faites pas une définition aussi étrange.
python
class Child(Parent):
name = "Child"
get_name = Parent.get_name
À cet égard, la méthode a essentiellement le contexte de «où elle appartient», donc dans ce cas, la méthode est exécutée en fonction du contexte du référent Parent, quelle que soit la classe.