** * Cet article provient d'Udemy "[Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + style de code de style américain Silicon Valley](https://www.udemy.com/course/python-beginner/" Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + Style de code de style de la Silicon Valley américaine ")" C'est une note de classe pour moi après avoir suivi le cours. Il est ouvert au public avec la permission de l'instructeur Jun Sakai. ** **
animal = 'cat'
def f():
print(animal)
f()
result
cat
Puisque ʻanimal ici est une variable globale, elle peut bien sûr être appelée dans
f () `.
animal = 'cat'
def f():
animal = 'dog'
print('after:', animal)
f()
result
after: dog
Bien sûr, cela imprime dog
, mais cela n'écrase pas la variable globale ʻanimal`.
animal = 'cat'
def f():
print(animal)
animal = 'dog'
print('after:', animal)
f()
result
UnboundLocalError: local variable 'animal' referenced before assignment
Quand j'ai essayé pour la première fois d'imprimer «animal», j'ai eu une erreur.
C'est une erreur qu'il y a une description qui déclare une variable locale dans la fonction et que vous essayez de l'imprimer avant qu'elle ne soit écrite.
animal = 'cat'
def f():
# print(animal)
animal = 'dog'
print('local:', animal)
f()
print('global:', animal)
result
local: dog
global: cat
Dans f ()
, déclarez la variable locale ʻanimal et affichez-la, L'impression sur la dernière ligne imprime la variable globale ʻanimal
.
animal = 'cat'
def f():
global animal
animal = 'dog'
print('local:', animal)
f()
print('global:', animal)
result
local: dog
global: dog
L'appel de la variable globale ʻanimlal en utilisant
global` dans la fonction écrasera cette variable globale.
animal = 'cat'
def f():
animal = 'dog'
print(locals())
f()
print(globals())
result
{'animal': 'dog'}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd8f9f687f0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'test.py', '__cached__': None, 'animal': 'cat', 'f': <function f at 0x7fd8f9db9160>}
Vous pouvez appeler des variables locales et globales comme dictionnaire en utilisant locals ()
et globals ()
.
Si vous regardez les variables globales imprimées, vous pouvez voir qu'il y a des variables qui sont définies à l'avance du côté python.
def TestFunc():
"""Test func doc"""
print(TestFunc.__name__)
print(TestFunc.__doc__)
TestFunc()
print('global:', __name__)
result
TestFunc
Test func doc
global: __main__
Si vous spécifiez un nom de fonction, vous pouvez afficher le «name» et le «doc» de cette fonction.