Fonction staticmethod() de Python

Python3 内置函数Fonctions intégrées de Python3


staticmethod()Il s'agit d'une fonction intégrée de Python utilisée pour convertir une méthode en méthode statique.

Une méthode statique appartient à la classe plutôt qu'aux instances ; elle n'a pas besoin d'accéder aux attributs d'instance ni d'appeler des méthodes d'instance.staticmethod()Elle peut être utilisée comme décorateur, et peut aussi être appelée directement.

Définition du mot: staticmethodOuistatic methodAbréviation de (méthode statique).


Syntaxe de base et paramètres

Format de syntaxe

staticmethod(function)

Description du paramètre

  • Paramètre function:
    • Type : objet fonction
    • Description : La fonction à convertir en méthode statique.

Description de la fonction

  • Valeur de retour: Renvoie un objet de méthode statique.
  • Caractéristiques: Les méthodes statiques ne nécessitent passelfle paramètre self, et peuvent être appelées directement via le nom de la classe.

Exemple

Exemple 1 : Utilisation de base

Exemple

class MathUtils:
    # Utiliser un décorateur pour définir une méthode statique (recommandé)
    @staticmethod
    def add(a, b):
        return a + b

    @staticmethod
    def multiply(a, b):
        return a * b

# Appeler directement via le nom de la classe (pas besoin de créer une instance)
result = MathUtils.add(3, 5)
print(result)  # Sortie : 8

result = MathUtils.multiply(4, 6)
print(result)  # Sortie : 24

Sortie attendue :

8
24

Analyse du code :

  1. Les méthodes statiques utilisent@staticmethodle décorateur pour définir.
  2. Peut être appelée comme une fonction ordinaire, mais appartient à l'espace de noms de la classe.
  3. Elle peut être appelée sans créer d'instance de la classe.

Exemple 2 : Sans utiliser de décorateur

Exemple

class Temperature:
    @staticmethod
    def celsius_to_fahrenheit(c):
        return c * 9/5 + 32

    @staticmethod
    def fahrenheit_to_celsius(f):
        return (f - 32) * 5/9

# Appeler la méthode statique
print(Temperature.celsius_to_fahrenheit(0))    # Sortie : 32.0
print(Temperature.celsius_to_fahrenheit(100)) # Sortie : 212.0
print(Temperature.fahrenheit_to_celsius(32)) # Sortie : 0.0

# Il peut également être appelé via une instance
temp = Temperature()
print(temp.celsius_to_fahrenheit(25))  # Sortie : 77.0

Sortie attendue :

32.0
212.0
0.0
77.0

Analyse du code :

  • Les méthodes statiques sont souvent utilisées dans les classes utilitaires pour encapsuler des fonctions sans rapport avec les instances.
  • Les méthodes statiques peuvent être appelées via le nom de la classe ou le nom d'une instance.

Exemple 3 : Application dans le patron de conception Factory

Exemple

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @staticmethod
    def from_dict(data):
        # Créer un objet Person à partir d'un dictionnaire
        return Person(data['name'], data['age'])

    @staticmethod
    def create_adult(name):
        # Créer un adulte
        return Person(name, 18)

# Utiliser une méthode statique pour créer l'objet
p1 = Person.from_dict({'name': 'Tom', 'age': 20})
print(p1.name, p1.age)  # Sortie : Tom 20

p2 = Person.create_adult('Jack')
print(p2.name, p2.age)  # Sortie : Jack 18

Sortie attendue :

Tom 20
Jack 18

Les méthodes statiques sont souvent utilisées comme méthodes de fabrique pour créer des instances d'objets à partir de différentes sources de données.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions