J'ai un décorateur comme celui-ci:Argument de fonction ayant une valeur qui est ni transmise par l'appelant, ni valeur par défaut
def region_required(view_func):
def new_view(request, ctx = {}, *args, **kw):
import pdb; pdb.set_trace()
ctx['regions'] = Region.objects.all()
return view_func(request, context=ctx, *args, **kw)
return new_view
Je l'utilise pour décorer les fonctions de vue.
Aujourd'hui, j'ai remarqué quelque chose de vraiment étrange, l'argument ctx (contexte) a parfois des données qui appartiennent à la dernière requête HTTP. Puis je l'ai réduit à ce décorateur et j'ai trouvé que ctx avait une valeur quand ça devrait être {} ici.
Donc, j'ai mis un point d'arrêt, et monte d'un niveau, puis j'ai trouvé que son appelant ne lui passe rien du tout.
Comment un argument peut-il avoir une valeur qui n'est pas transmise par l'appelant ni par la valeur par défaut?
wow, j'utilise Python depuis des années, mais il y a encore des choses à apprendre. – ablmf