[PYTHON] Anti-patterns de dénomination variables que les débutants ont tendance à faire

introduction

Comme vous le savez, Python est populaire en tant que langage avec un seuil bas, même pour les débutants en programmation en raison de sa facilité d'écriture, et il y a beaucoup de gens qui disent que le langage dans lequel ils sont nouveaux est Python. Cependant, il existe un anti-motif (main interdite) qui ne devrait pas être fait dans un tel Python, et si un débutant marche dessus sans le savoir, il sera difficile de le gérer. Par conséquent, je voudrais présenter certains des anti-modèles de Python, ** "Variation Naming" ** auxquels les débutants devraient prêter une attention particulière, et ** Assignment by the same name variable definition **, qui est particulièrement fatal.

mauvais exemple

Le code ci-dessous convertit le contenu de la variable de type tapple tuple en un type de liste et le combine avec la variable de type liste list. À première vue, c'est une opération de données normale, mais cela ne fonctionne pas réellement. J'obtiens une erreur.

>>> list = ["Apple", "Orange", "Grape"]
>>> tuple = ("Peach", "Strawberry")
>>> list.append(list(tuple))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable

Ce qui était faux?

La cause est sur la première ligne. Dans l'ensemble, Python a une fonction intégrée standard appelée list () qui vous permet de convertir un objet Iterable donné comme argument en un type de liste.

Le contenu de ʻappend () sur la 3ème ligne list (tuple) essaie d'appeler cette fonction, mais la 1ère ligne définit une variable de liste avec le nom ** list. En conséquence, la destination de référence de «list» a été écrasée. ** ** Donc ** dans ce code, list se référera maintenant aux variables [" Apple "," Orange "," Grape "] ʻau lieu de la fonction intégrée list () **.

Malheureusement, la fonction list () ne peut plus jamais être utilisée dans ce code à moins qu'elle ne soit réaffectée.

Contre-mesures

Il existe d'autres noms qui sont également fortement déconseillés à utiliser, tels que str, list, ʻint, dict, ʻid, bool, etc. Cependant, si vous le définissez réellement, c'est dangereux car vous détruirez la fonction du même nom. N'utilisez jamais ces noms, même s'il s'agit de code abandonné. Ma recommandation personnelle est donc de ** les mettre dans le nom de la variable en tant que suffixe **. Dans l'exemple ci-dessus,

list = ["Apple", "Orange", "Grape"]
tuple = ("Peach", "Strawberry")

,

fruits_list = ["Apple", "Orange", "Grape"]
fruits_tuple = ("Peach", "Strawberry")

Il est recommandé de nommer ** et [nom générique des éléments de la liste] _ [type de données] ** car vous pouvez facilement distinguer le contenu et le type des données contenues.

La dénomination doit être aussi unique que possible

Il vaut mieux éviter de nommer des objets avec le même nom ainsi que des fonctions intégrées.

L'exemple donné cette fois concerne une fonction appelée list (), mais ** Python a la caractéristique que vous pouvez librement définir et affecter toutes les variables autres que les mots réservés **, donc si vous ne faites pas attention, vous pouvez écraser les variables Comme vous perdrez l'accès à la fonction, c'est une bonne idée de conserver autant que possible la variable ** "dénomination sans correspondance" **. Vous devez être conscient des conflits non seulement avec les fonctions intégrées standard, mais également avec les méthodes qui existent dans votre code ou dans des packages importés. Si vous avez un éditeur qui a une fonction de suggestion de code, il peut être efficace de ** ne pas utiliser si les candidats avec le même nom sont répertoriés dans la suggestion lorsque vous essayez de définir une nouvelle variable ** (l'image ci-dessous est une suggestion de Visual Studio Code). .. image.png

Résumé

** Accorder plus d'attention aux noms de variables les rendra beaucoup plus lisibles et plus faciles à suivre l'ensemble du processus de code. Cela augmentera la probabilité de détection précoce des bogues et devrait améliorer considérablement la productivité. ** **

Vérifiez la dénomination des variables au fur et à mesure que vous écrivez votre code.

Merci d'avoir lu jusqu'au bout m (_ _) m J'apprécierais que vous me fassiez savoir s'il y a des corrections ou des ajouts.

Recommended Posts

Anti-patterns de dénomination variables que les débutants ont tendance à faire
10 erreurs Python communes aux débutants
[Pour les débutants] Que faire après l'installation d'Anaconda
Fonctionnement automatique du navigateur que même les débutants peuvent faire
Voulez-vous que je corrige cette copie?
Python que je voudrais recommander aux débutants en programmation
Syntaxe que les utilisateurs de Perl ont tendance à oublier en Python
Tout pour que les débutants puissent faire du machine learning