Maison  >  Article  >  développement back-end  >  Explication détaillée de l'indentation du code Python et des exemples de modules de test

Explication détaillée de l'indentation du code Python et des exemples de modules de test

不言
不言original
2018-05-07 11:50:541307parcourir

Cet article présente principalement l'explication détaillée des exemples d'indentation de code Python et de modules de test. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Préface

Les modules d'indentation et de test de code Python sont un élément indispensable de l'apprentissage de Python. Cet article présente principalement le contenu pertinent sur les modules d'indentation et de test de code Python et les partage avec tout le monde. , pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée.

1. Indentation du code Python

Les fonctions Python n'ont pas de début et de fin évidents, et il n'y a aucune indication du début. et fin de la fonction. Le seul délimiteur est un deux-points ( : ), puis le code lui-même est mis en retrait.

Exemple : Indentation buil dCon necti onStr ing function

def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

Les blocs de code sont définis par leur indentation. Par "blocs de code", j'entends : les fonctions, les instructions if, les boucles for, les boucles while, etc. Le retrait de départ indique le début d'un bloc et le retrait indique la fin d'un bloc. Il n’y a pas de parenthèses, d’accolades ou de mots-clés évidents. Cela signifie que les espaces sont importants et cohérents. Dans cet exemple, le code de la fonction (y compris la chaîne doc) est indenté de 4 espaces. Il n’est pas nécessaire que ce soit 4, juste cohérent. La première ligne non indentée est considérée en dehors du corps de la fonction.

Exemple : "instruction if" montre un exemple d'indentation d'une instruction if.

def fib(n): (1)
print 'n =', n (2)
if n > 1: (3)
return n * fib(n - 1)
else: (4)
print 'end of the line'
return 1

(1) Il s'agit d'une fonction appelée fib avec un paramètre n . Tout le code dans les fonctions est en retrait.

(2) Il est très facile d'afficher du contenu à l'écran en Python, il suffit d'utiliser print. L'instruction print peut accepter n'importe quel type de données, y compris les chaînes, les entiers et d'autres types tels que les dictionnaires et les listes. Vous pouvez même mélanger les résultats, il suffit de les séparer par des virgules. Toutes les valeurs sont imprimées sur la même ligne, séparées par des espaces (les virgules ne sont pas imprimées). Ainsi, lorsque fib est appelé avec 5, "n = 5" sera affiché.

(3) L'instruction if est une sorte de bloc de code. Si l'expression if est évaluée à true, le bloc indenté suivant sera exécuté, sinon le bloc else sera exécuté.

(4) Bien sûr, les blocs if et else peuvent contenir plusieurs lignes, à condition qu'elles soient toutes également indentées. Il y a deux lignes de code dans ce bloc else. Il n'y a pas de syntaxe spéciale pour les blocs de code multilignes, juste une indentation. Après quelques protestations initiales et quelques analogies moqueuses avec Fortran, vous ferez la paix

avec l'indentation de code et commencerez à voir ses avantages. Un avantage majeur est que tous les programmes Python se ressemblent car l’indentation est une exigence du langage plutôt qu’un style. Cela facilite grandement la lecture et la compréhension du code Python des autres.

Remarque : Python vs Java : instructions et fractionnement des instructions

Python utilise des retours durs pour diviser les instructions et les deux-points et l'indentation pour diviser les blocs de code. C++ et Java utilisent des points-virgules pour séparer les instructions et des accolades pour séparer les blocs de code.

2. Module de test Python

Tous les modules Python sont des objets et possèdent plusieurs attributs utiles. Vous pouvez utiliser ces propriétés pour tester facilement les modules que vous écrivez. Voici une astuce utilisant if name.

if name == "__main__":

Avant de passer à l'apprentissage de quelque chose de nouveau, il y a quelques observations importantes. Premièrement, si les expressions n’ont pas besoin d’être mises entre parenthèses. Deuxièmement, l'instruction if se termine par deux points, suivis du code en retrait.

Remarque : Python vs C : comparaison et affectation


Comme C, Python utilise == pour la comparaison et = pour l'affectation. Contrairement au C, Python ne prend pas en charge l'affectation en ligne, il n'y a donc aucune chance qu'une affectation inattendue se produise lorsque vous avez l'intention d'effectuer une comparaison.

Alors pourquoi cette déclaration if spéciale est-elle une astuce ? Les modules sont des objets et tous les modules ont un nom de propriété intégré. La valeur du nom d'un module dépend de la manière dont vous appliquez le module. Si un module est importé, la valeur de name est généralement le nom de fichier du module, sans chemin ni extension de fichier. Mais vous pouvez également exécuter le module directement comme un programme standard, auquel cas la valeur de name sera une valeur par défaut spéciale, main .

>>> import odbchelper
>>> odbchelper.__name__
'odbchelper'

Une fois que vous savez cela, vous pouvez concevoir une suite de tests pour votre module à l'intérieur du module et y inclure cette instruction if. Lorsque vous exécutez le module directement, la valeur de name est main , donc la suite de tests s'exécute. Lorsque vous importez le module, la valeur de name est autre chose, donc la suite de tests est ignorée. Cela facilite grandement le développement et le débogage de nouveaux modules avant de les intégrer dans un programme plus vaste.

Astuce : if name __ sur Mac OS


Sur MacPython, une étape supplémentaire est nécessaire pour que l'astuce if name fonctionne. Cliquez sur le triangle noir dans le coin supérieur droit de la fenêtre pour faire apparaître le menu des propriétés du module et confirmez que Exécuter en tant que principal est sélectionné.

  • Explication sur la façon d'utiliser le framework de tests unitaires Python unittest

  • Méthode d'implémentation des tests Python

Recommandations associées :

Packaging et publication du code Python

Méthodes pour séparer le code python et comments_python

Validation croisée et implémentation du code python

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