Que signifient @classmethod
et @staticmethod
en Python, et en quoi diffèrent-ils? Quand devrais-je les utiliser, pourquoi devrais-je les utiliser, et comment devrais-je les utiliser?
D'après ce que je comprends, @classmethod
indique à une classe qu'il s'agit d'une méthode qui doit être héritée dans les sous-classes, ou... quelque chose comme ça. Cependant, quel est l'intérêt de cela? Pourquoi ne pas simplement définir la méthode de classe sans ajouter @classmethod
ou @staticmethod
ou toute autre définition @
?