Maison >développement back-end >Tutoriel Python >Comment implémenter la surcharge de méthodes en Python ?
Comprendre la surcharge de méthodes en Python
Lorsque vous essayez d'implémenter la surcharge de méthodes en Python, vous pouvez rencontrer un comportement inattendu, comme le montrent les exemples fournis. En effet, Python ne prend pas en charge la véritable surcharge de méthodes, qui implique de déclarer plusieurs fonctions avec le même nom mais des signatures différentes.
Approche méthode de Python
En Python, vous pouvez créez une fonction unique qui gère différents scénarios en fonction du nombre et du type d'arguments qu'elle reçoit. Ceci est réalisé grâce à l'utilisation de valeurs d'argument par défaut, comme le montre la définition de classe suivante :
class A: def stackoverflow(self, i='some_default_value'): print('only method')
Dans ce cas, la méthode stackoverflow a un seul argument par défaut i. Lorsque la méthode est appelée sans aucun argument, la valeur par défaut de « some_default_value » sera utilisée. Alternativement, vous pouvez fournir une valeur spécifique pour i lors de l'appel de la méthode.
Fonctions génériques à répartition unique
Python 3.4 a introduit singledispatch, une fonctionnalité intégrée qui vous permet pour définir des fonctions génériques qui répartissent sur le type de leur premier argument. Cela permet une approche plus flexible et extensible de la surcharge de méthodes.
Pour utiliser singledispatch :
from functools import singledispatch @singledispatch def fun(arg, verbose=False): # Handle the default case @fun.register(int) def _(arg, verbose=False): # Handle the integer case @fun.register(list) def _(arg, verbose=False): # Handle the list case
Dans cet exemple, la fonction fun distribuera sur le type de son premier argument, en appelant la fonction enregistrée appropriée en fonction de ce type.
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!