Python >> Tutoriel Python >  >> Python

Locaux Python()

locals() de Python la fonction renvoie un dictionnaire de name --> object mappages. Les noms sont ceux définis dans la portée locale actuelle, c'est-à-dire définis dans le module, la classe, la méthode ou la fonction actuelle, quelle que soit la portée la plus locale. Les objets sont les valeurs associées à ces noms. Par exemple, si vous définissez la variable x = [1, 2, 3] dans la portée de votre fonction locale, le locals() 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 locals() fonction intégrée :

def f():
    x = [1, 2, 3]
    print(locals())

x = 42
f()
# {'x': [1, 2, 3]}

Dans le périmètre local de la fonction f , vous définissez une nouvelle variable nommée 'x' et définissez-le sur l'objet de liste [1, 2, 3] . Vous définissez également une autre variable x = 42 au niveau du module global, pas dans une portée de fonction locale. Si vous appelez le locals() fonction dans la fonction, elle renvoie le dictionnaire de name --> object mappages. Parmi les mappings du dictionnaire, vous trouvez le mapping 'x': [1, 2, 3] . Ainsi, la portée locale de la fonction l'emporte sur la portée globale au niveau du module.

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

>>> friend = 'Alice'
>>> locals()['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 locals() dictionnaire.

Vidéos locales()

Alors, à quoi ressemble formellement la syntaxe ?

Syntaxe locale()

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

Syntax: 
locals()      # Returns dictionary of name --> object pairs defined in your local scope.
Arguments -
Valeur de retour dict Renvoie le dictionnaire des mappages (nom --> objet) de tous les noms que vous pouvez utiliser dans la portée locale, par exemple, dans une fonction ou une méthode. Cela inclut le nom que vous avez défini dans la portée locale, mais pas les noms définis dans la portée globale.

Python locals() Valeur de retour

Renvoie le dictionnaire des mappages (nom --> objet) de tous les noms que vous pouvez utiliser dans la portée locale, par exemple, dans une fonction ou une méthode. Cela inclut le nom que vous avez défini dans la portée locale, mais pas les noms définis dans la portée globale.

l = locals()
print(type(l))
# <class 'dict'>

Python locals() Exercice de shell interactif

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

Exercice :Devinez la sortie de cet extrait de code — quel nom se trouve dans le dictionnaire locals() ? Ensuite, exécutez le code et vérifiez votre résultat !


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 aboutit au dictionnaire des variables locales avec le nom 'Liz' parce que quand locals() est appelé, la définition la plus locale du nom était 'Liz' .

Résumé

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

  • Les noms sont ceux définis localement, c'est-à-dire définis dans votre portée locale actuelle (par exemple, les fonctions).
  • Les objets sont les valeurs associées à ces noms.

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

def f():
    x = [1, 2, 3]
    print(locals())

x = 42
f()
# {'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 !