Disons que j'ai un objet composant, par ex. Route.Constructeur de composant Python wrap avec la méthode et le maintien de l'argument
class Route:
def __init__(self, url='localhost', port=80)
...
Je veux offrir une classe de gestionnaire de routage, semblable à ce que Flask fait avec @app.route
, donc je peux créer et garder une trace des routes:
class Router:
def route(self, *args, **kwargs):
route = Route(*args, **kwargs)
self.routes.append(route)
est-il un moyen facile de faire la Router.route
méthode avoir compléter l'argument et/ou la documentation reflétant automatiquement Route.__init__
?
J'ai essayé d'utiliser functools.wraps
, mais cela n'a eu aucun effet immédiat. Peut-être que je l'ai mal utilisé?
class Router:
@wraps(Route.__init__)
def route(self, *args, **kwargs):
route = Route(*args, **kwargs)
self.routes.append(route)
EDIT: J'utilise Python 3.6 avec la nouvelle PyCharm (02/03/2016).
Dans quel IDE voulez-vous travailler votre achèvement? Quelle version de Python utilisez-vous? Les anciennes API regardent directement l'objet de code. il n'y a aucun moyen de les piéger. Le code le plus récent utilise des protocoles avancés. –
J'espérais une solution universelle, mais j'ai mis à jour la question avec ma configuration. Une solution spécifique est préférable à aucune solution. – VillasV