Signification et utilisation de @classmethod et @staticmethod pour les débutants
En Python, @classmethod et @staticmethod sont des décorateurs utilisés pour définir des méthodes avec spécifique caractéristiques.
@classmethod
Une méthode de classe est une méthode qui est liée à une classe, et non à une instance individuelle de la classe. Il doit avoir une classe comme premier argument, généralement nommée cls. Par convention, les méthodes de classe sont nommées avec les préfixes from_ ou create_.
Quand utiliser @classmethod :
Exemple :
class Date: def __init__(self, day, month, year): self.day = day self.month = month self.year = year @classmethod def from_string(cls, date_as_string): day, month, year = map(int, date_as_string.split('-')) return cls(day, month, year)
@staticmethod
Une méthode statique est une méthode qui n'est pas lié soit à la classe, soit à une instance. Il n’a accès à aucune variable d’instance ou de classe. Les méthodes statiques sont généralement utilisées pour des fonctions utilitaires qui peuvent être réutilisées sans modification.
Quand utiliser @staticmethod :
Exemple :
class Date: @staticmethod def is_date_valid(date_as_string): day, month, year = map(int, date_as_string.split('-')) return day <= 31 and month <= 12 and year <= 3999
Différence entre @classmethod et @staticmethod
Feature | @classmethod | @staticmethod |
---|---|---|
Access to class | Has access to the class | No access to the class |
Access to instance | No access to instances | No access to instances |
Usage | Factory methods, operations on the class | Utility functions, independent of class or instances |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!