[PYTHON] Variables globales et locales 2

1


player = 'Taro'

def f():
    player = 'Jiro'
    print('local:', locals())

f()
print(player)

Résultat d'exécution de 1


local: {'player': 'Jiro'}
Taro

Sans déclarer de variables locales Lorsque vous exécutez les locaux (),

2


player = 'Taro'

def f():
    print('local:', locals())

f()
print(player)

Résultat d'exécution de 2


local: {}
Taro

Un dictionnaire vide est renvoyé.

Quand j'exécute également globals (),

3


player = 'Taro'

def f():
    print('local:', locals())

f()
print('global:', globals())

Résultat d'exécution de 3


local: {}
global: {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7efff584a2b0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'Main.py', '__cached__': None, 'player': 'Taro', 'f': <function f at 0xxxxxxxxxxxxx>}

Beaucoup sortent, 'player': Il dit 'Taro'.

De plus, __name__ est __main__, __doc__ est None sans rien dedans Quelque chose qui a été déclaré à l'avance sortira.

Si vous écrivez ici un document pour cette fonction,

4


"""
test ##################
"""

player = 'Taro'

def f():
    print('local:', locals())

f()
print('global:', globals())

Résultat d'exécution de 4


local: {}
global: {'__name__': '__main__', '__doc__': '\ntest ##################\n', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f73121652b0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'Main.py', '__cached__': None, 'player': 'Taro', 'f': <function f at 0x7f7312236e18>}

__doc__ est maintenant '\ ntest ################# \ n.

Si vous regardez également __name__ et __doc__ dans la fonction,

5


player = 'Taro'

def f():
    """Test func doc"""
    print(f.__name__)
    print(f.__doc__)

f()
print('global:', __name__)

Résultat d'exécution de 5


f
Test func doc
global: __main__

Premier, print(f.__name__) Sort le nom de la fonction f avec prochain, Le document de la fonction f est sorti par print (f .__ doc __). Finalement, Avec print ('global:', __name __) Le nom de la fonction entière est affiché après la chaîne «global:».

Recommended Posts

Variables globales et locales 2
Variables globales et locales 1
Une histoire accro aux variables globales et à la portée de Go
Python: variables de classe et d'instance
À propos des variables et des objets Python
Variables de classe et d'instance Python
Variables Python et ID d'objet
Déclaration des variables globales du langage C
Initialisation de variables globales à l'aide de décorateurs Python
[Linux] [C / C ++] Mémo de vérification d'opération des variables locales fork, thread et thread
Utilisation de variables globales dans les fonctions python
[Python3] Définir dynamiquement des variables globales dans une fonction
[Python] Utiliser et et ou lors de la création de variables
Exemple d'utilisation de variables de classe et de méthodes de classe
Différence entre non local et global en Python
L'histoire de la manipulation des variables globales Python
Visualisation de corrélation entre la quantité de caractéristiques et la variable objective