Python >> Tutoriel Python >  >> Python

Python global()

globals() de Python la fonction renvoie un dictionnaire de name --> object mappages. Les noms sont ceux définis globalement, c'est-à-dire définis par Python ou dans la portée extérieure de votre programme. Les objets sont les valeurs associées à ces noms. Par exemple, si vous définissez la variable x = [1, 2, 3] , le globals() le dictionnaire contiendra un nom 'x' et une référence d'objet à [1, 2, 3] .

Tutoriel associé : Espaces de noms simplifiés

Exemples d'utilisation

Apprenez par l'exemple ! Voici un exemple formaté de la façon d'utiliser le globals() fonction intégrée :

>>> x = [1, 2, 3]
>>> globals()
{'__name__': '__main__', 
 '__doc__': None,
 '__package__': None,
 '__loader__': <class '_frozen_importlib.BuiltinImporter'>,
 '__spec__': None,
 '__annotations__': {},
 '__builtins__': <module 'builtins' (built-in)>,
 '__file__': 'C:\\Users\\...\\code.py',
 'x': [1, 2, 3]}

Vous définissez une nouvelle variable nommée 'x' et définissez-le sur l'objet de liste [1, 2, 3] . Cette variable est définie au niveau du module global, pas dans une portée de fonction locale, etc. Si vous appelez le globals() fonction, il vous donne le dictionnaire de name --> object mappages. Parmi les mappings du dictionnaire, vous trouvez le mapping 'x': [1, 2, 3] .

Vous pouvez également modifier une variable globale en utilisant le globals() dictionnaire :

>>> friend = 'Alice'
>>> globals()['friend'] = 'Bob'
>>> friend
'Bob'

Ceci est utile si vous souhaitez modifier certaines variables dynamiques que vous ne connaissez pas encore au moment de la programmation. Par exemple, vous voulez que l'utilisateur vous donne une chaîne d'une variable à mettre à jour. Votre programme n'a que la chaîne, donc la seule façon de mettre à jour le nom global associé est d'utiliser le globals() dictionnaire.

Globaux de la vidéo()

Alors, à quoi ressemble formellement la syntaxe ?

Syntaxe globals()

Vous utilisez le globals() méthode sans argument.

Syntax: 
globals()      # Returns dictionary of name --> object pairs defined in your global scope.
Arguments -
Valeur de retour dict Renvoie le dictionnaire des mappages (nom --> objet) de tous les noms que vous pouvez utiliser dans votre programme. Cela inclut le nom que vous avez défini dans la portée globale (pas dans les portées locales telles que les fonctions) et les noms définis par Python tels que __name__ .

Valeur de retour Python globals()

Renvoie le dictionnaire des mappages (nom --> objet) de tous les noms que vous pouvez utiliser dans votre programme. Cela inclut le nom que vous avez défini dans la portée globale (pas dans les portées locales telles que les fonctions) et les noms définis par Python tels que __name__ .

g = globals()
print(type(g))
# <class 'dict'>

Exercice de shell interactif Python globals()

Prenons un exemple pratique d'utilisation de la fonction globals() dans une application réelle qui demande à l'utilisateur de saisir n'importe quelle variable pour vérifier sa valeur actuelle :

Exercice :Exécutez le code et découvrez en tant qu'utilisateur, la sélection courante de la variable age .


Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners


Solution :L'exercice interactif peut être résolu facilement en tapant la chaîne 'age' . Python va alors récupérer la valeur associée au nom depuis le globals() dictionnaire et vous donner l'âge défini.

Résumé

globals() de Python la fonction renvoie un dictionnaire de name --> object mappages.

  • Les noms sont ceux définis globalement, c'est-à-dire définis par Python ou dans la portée extérieure de votre programme.
  • Les objets sont les valeurs associées à ces noms.

Par exemple, si vous définissez la variable x = [1, 2, 3] , le globals() le dictionnaire contiendra un nom 'x' et une référence d'objet à [1, 2, 3] .

>>> x = [1, 2, 3]
>>> globals()
{'__name__': '__main__', 
 '__doc__': None,
 '__package__': None,
 '__loader__': <class '_frozen_importlib.BuiltinImporter'>,
 '__spec__': None,
 '__annotations__': {},
 '__builtins__': <module 'builtins' (built-in)>,
 '__file__': 'C:\\Users\\...\\code.py',
 'x': [1, 2, 3]}

J'espère que vous avez apprécié l'article! Pour améliorer votre formation Python, vous pouvez rejoindre la populaire et gratuite Finxter Email Academy :

Voulez-vous améliorer vos compétences Python d'une manière amusante et facile à consommer ? Considérez les ressources suivantes et devenez un maître codeur !


Post précédent
Prochain article