recherche
Maisondéveloppement back-endTutoriel PythonPython implémente les noms de variables variables

Python implémente les noms de variables variables

Cet article présente principalement la méthode d'utilisation des noms de variables dynamiques en Python. Les amis qui en ont besoin peuvent se référer à

Si vous souhaitez écrire. un programme, laissez x1 être 1, x2 être 2, et puis jusqu'à ce que x100 soit 100, que feriez-vous ?

Dans un langage statique comme le C, l'identifiant du nom de la variable sera en fait directement traduit en adresse mémoire par le compilateur, il n'y a donc aucun moyen de le faire sauf définir manuellement la valeur de chaque variable. Et les langages dynamiques comme Python peuvent le faire.

La chose la plus simple à laquelle penser est naturellement eval, mais en fait, une chose aussi dangereuse n'est pas nécessaire, car le nom de variable de Python n'est qu'une clé de dictionnaire. Pour obtenir ce dictionnaire, il suffit d’utiliser directement les fonctions locales et globales.

Donc ce programme peut être implémenté comme ceci :

Le code est le suivant :

>>> names = locals()
>>> for i in xrange(1, 101):
...   names['x%s' % i] = i
...
>>> x1
1
>>> x2
2
>>> x100
100

Mais on peut dire que cet exemple ne sert à rien, après tout, c'est plus pratique d'utiliser un tableau pour l'implémenter.

Prenons ensuite un autre exemple : le serveur utilise une base de données d'objets et peut directement enregistrer des objets dans la base de données. Le serveur répertorie toutes les classes actuellement prises en charge et l'utilisateur souhaite ajouter une classe qui n'existe pas dans la liste. Un texte JSON ou XML est donc envoyé au serveur. Le serveur analyse ce texte, le convertit en objet de classe et définit le nom de la classe. L'utilisateur peut alors générer à volonté des objets de cette classe.
La clé est que cette base de données est liée au nom de la classe. Vous ne pouvez pas utiliser une classe Object générale pour enregistrer tous les objets, sinon la requête sera gâchée.
Par coïncidence, quelqu'un a également soulevé cette exigence sur le forum GAE, mais lui, qui ne connaissait que Java, a finalement dû abandonner.

Bien sûr, vous pouvez l'utiliser comme une farce :

Le code est le suivant :

>>> locals()['True'] = False
>>> True
False

Une autre utilisation est de tester si un nom de variable existe déjà. L'approche standard consiste à essayer... sauf une exception NameError. En fait, vous pouvez utiliser directement in locals() ou globals() pour juger.
Au fait, permettez-moi de vous présenter une autre méthode étrange. Je ne sais pas si quelqu'un l'a écrit comme ceci :

Le code est le suivant :

>>> import __main__
>>> hasattr(__main__, 'x')
False
>>> setattr(__main__, 'x', 1)
>>> x
1
>>> hasattr(__main__, 'x')
True

Bien sûr, non. on vous recommande d'écrire ainsi, et moi non plus.

Enfin, en plus de définir dynamiquement les noms de variables, une suppression dynamique est également possible, comme del locals()['x1']. De même, delattr est disponible.

Tutoriels associés recommandés : Tutoriel vidéo 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
Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?May 03, 2025 am 12:11 AM

ForhandlingLargedatasetSInpython, UsenumpyArraysforbetterperformance.1) NumpyArraysAremeMory-EfficientAndFasterFornumericalOperations.2) EvitUnneceSsaryTypeConversions.3) Le effet de levier

Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.May 03, 2025 am 12:10 AM

Inpython, listSusedynamicMemoryallocation withover-allocation, whileLumpyArraySallocateFixedMemory.1) listsallocatemoreMoryThreededEdededInitialement, redimensipwenessary.2) NumpyArraySallocateExactMemoryForElements, offrantwectable usinessflexibilité.

Comment spécifiez-vous le type d'éléments de données dans un tableau Python?Comment spécifiez-vous le type d'éléments de données dans un tableau Python?May 03, 2025 am 12:06 AM

Inpython, YouCanscthedatatatypeyfelemememedenernSspant.1) usenpynernrump.1) usenpynerp.dloatp.ploatm64, formateur préséconstrolatatype.

Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?May 03, 2025 am 12:03 AM

NumpyissentialFornumericalComputingInpythondutOtsSpeed, MemoryEfficiency et ComprehenSiveMathematicalFunctions.1) It'sfastBecauseitPerformSoperations INC.2) NumpyArraySareMoremory-EfficientThanpythonlists.3)

Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.May 03, 2025 am 12:01 AM

ContigusMymoryallocationiscrucialforAraySBauseitallowsforefficient andfastelementAccess.1) iTenablesConstanttimeAccess, o (1), duetoDirectAddressCalculation.2) itimproveScacheefficiendyAllowingMultipleElementFetchesperCacheline.3) itsimplieniesMemorymorymorymorymorymory

Comment coupez-vous une liste de python?Comment coupez-vous une liste de python?May 02, 2025 am 12:14 AM

SlitingyPapyThonListIsDoneUsingTheSyntaxList [Démarrage: arrêt: étape] .He'showitworks: 1) startisheindexofthefirStelementoinclude.2) stopisTheIndexoftheFirstelementsoexclude.3) StepistheincrementBetweenselans.it'susefulfactingPortationSoListShsandCanusegeg

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?May 02, 2025 am 12:09 AM

NumpyAllowsForvariousOperations ONARRAYS: 1) BasicarithmeticLikeaddition, Soustraction, Multiplication, anddivision; 2) AdvancedOperationSuchasmatrixMultiplication; 3) Element-Wiseoperations withoutExplicitloop

Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?May 02, 2025 am 12:09 AM

ArraySinpython, en particulier ThroughNumpyandPandas, aressentialfordataanalysis, offingspeeedAfficiency.1) numpyarrayablefficienthandlingoflargedatasetsandComplexOperationsLikEMoVingAverages.2)

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP