Maison >développement back-end >Tutoriel Python >Pourquoi j'attribue toujours des valeurs intermédiaires aux variables locales au lieu de les transmettre directement aux appels de fonction

Pourquoi j'attribue toujours des valeurs intermédiaires aux variables locales au lieu de les transmettre directement aux appels de fonction

Linda Hamilton
Linda Hamiltonoriginal
2024-09-27 06:22:291138parcourir

Why I always assign intermediate values to local variables instead of passing them directly to function calls

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn