Pourquoi est-il cls
parfois utilisé au lieu de self
comme argument dans les classes Python?
Par exemple:
class Person:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
@classmethod
def from_fullname(cls, fullname):
cls.firstname, cls.lastname = fullname.split(' ', 1)
static member
etnon-static members
, compris dans le contexte de c ++C'est une très bonne question, mais pas autant que la question. Il y a une différence entre la méthode utilisée par «soi» et «cls» bien que, analogiquement, elles soient au même endroit
Vous pouvez maintenant voir que les deux sont la fonction de la lune, mais l'une peut être utilisée à l'intérieur de la classe tandis que l'autre nom de la fonction lune peut être utilisé pour n'importe quelle classe.
Pour une approche de programmation pratique:
Lors de la conception d'une classe de cercle, nous utilisons la méthode area comme cls au lieu de self car nous ne voulons pas que area soit limitée à une classe particulière de cercle uniquement.
la source
- Astuces Python
la source