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

Linda Hamilton
Libérer: 2024-09-27 06:22:29
original
1107 Les gens l'ont consulté

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
    )
Copier après la connexion

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
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal