Maison > Article > développement back-end > Comment utiliser les méthodes statiques
Les méthodes statiques et les méthodes de classe sont référencées dans python2.2, et les classes classiques et de nouveau style peuvent être utilisées. Dans le même temps, une paire de fonctions intégrées : staticmethod et classmethod ont été introduites pour convertir une certaine méthode de la classe en l'une de ces deux méthodes.
Méthode statique fait référence à une méthode dans une classe qui peut être appelée sans la participation d'une instance (aucun paramètre self n'est requis. Pendant le processus d'appel, il n'est pas nécessaire d'instancier). la classe et est utilisé directement après que l’opérateur Sign de la classe appelle la méthode.
Normalement, les méthodes statiques sont déclarées à l'aide du décorateur @staticmethod.
Exemple de code :
class ClassA(object): @staticmethod def func_a(): print('Hello Python') if __name__ == '__main__': ClassA.func_a() # 也可以使用实例调用,但是不会将实例作为参数传入静态方法 ca = ClassA() ca.func_a()
Il convient de noter ici que dans Python 2, si une méthode de classe ne nécessite pas de paramètre self, elle doit être déclarée comme méthode statique, c'est-à-dire ajouter le décorateur @staticmethod , l'appelant ainsi sans instance.
En Python 3, si une méthode de classe ne nécessite pas de paramètre self, elle n'a plus besoin d'être déclarée comme méthode statique. Cependant, dans ce cas, cette méthode ne peut être appelée que via la classe If. vous utilisez une instance pour appeler cette méthode, cela provoquera des anomalies.
class ClassA(object): def func_a(): print('Hello Python') if __name__ == '__main__': ClassA.func_a() # 以下使用实例调用会引发异常 ca = ClassA() ca.func_a()
Informations d'exception :
func_a() prend 0 argument de position mais 1 a été donné
Parce que func_a n'est pas déclaré comme méthode statique, l'instance de classe sera masquée lorsque appeler func_a Le paramètre self est passé dans func_a, tandis que func_a lui-même n'accepte aucun paramètre, générant ainsi une exception.
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!