Au lieu de
def do_something(a, b, c): return res_fn( fn(a, b), fn(b), c )
Je fais :
def do_something(a, b, c): inter_1 = fn(a, b) inter_2 = fn(b) result = res_fn(inter_1, inter_2, c) return result
La première version est beaucoup plus courte et, lorsqu'elle est correctement formatée, tout aussi lisible.
Mais la raison pour laquelle je préfère la deuxième approche est que toutes les étapes intermédiaires sont enregistrées dans des variables locales.
Les outils de suivi des exceptions comme Sentry, et même la page d'erreur de Django qui apparaît lorsque DEBUG=True est défini, capturent le contexte local. De plus, si jamais vous devez parcourir la fonction avec un débogueur, vous pouvez voir la valeur de retour exacte avant de quitter la fonction. C'est la raison pour laquelle je sauvegarde même le résultat final dans une variable locale, juste avant de le renvoyer.
Au prix de quelques affectations de variables supplémentaires et de quelques lignes de code supplémentaires, cela rend le débogage beaucoup plus facile.
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!