J'ai deux fonctions dans une classe, plot()
et show()
. show()
, comme méthode pratique, ne fait rien d'autre que d'ajouter deux lignes au code de plot()
commeCopier la signature, transférer tous les arguments de la fonction wrapper
def plot(
self,
show_this=True,
show_that=True,
color='k',
boundary_color=None,
other_color=[0.8, 0.8, 0.8],
show_axes=True
):
# lots of code
return
def show(
self,
show_this=True,
show_that=True,
color='k',
boundary_color=None,
other_color=[0.8, 0.8, 0.8],
show_axes=True
):
from matplotlib import pyplot as plt
self.plot(
show_this=show_this,
show_that=show_that,
color=color,
boundary_color=boundary_color,
other_color=other_color,
show_axes=show_axes
)
plt.show()
return
tout cela fonctionne.
Le problème que j'ai, c'est que cela semble façon trop de code dans l'emballage show()
. Ce que je veux vraiment: Soit show()
avoir la même signature et les mêmes arguments par défaut que plot()
, et lui transmettre tous les arguments.
Des indices?
le 'i Le module nspect' a une classe 'Signature' depuis Python 3.3. –
Python 2 ou Python 3? Ce dernier a plus de possibilités de copier des signatures –
Le code doit être compatible avec Python 2, mais je serais curieux de connaître les possibilités que vous mentionnez. –