** * Dieser Artikel ist von Udemy "[Einführung in Python3, unterrichtet von aktiven Silicon Valley-Ingenieuren + Anwendung + Code-Stil im amerikanischen Silicon Valley-Stil](https://www.udemy.com/course/python-beginner/" Einführung in Python3, unterrichtet von aktiven Silicon Valley-Ingenieuren + Anwendung + Code-Stil im amerikanischen Silicon Valley-Stil ")" Es ist eine Klassennotiz für mich nach dem Kurs von. Es ist mit Genehmigung des Ausbilders Jun Sakai für die Öffentlichkeit zugänglich. ** ** **
animal = 'cat'
def f():
print(animal)
f()
result
cat
Da animal
hier eine globale Variable ist, kann sie natürlich in f ()
aufgerufen werden.
animal = 'cat'
def f():
animal = 'dog'
print('after:', animal)
f()
result
after: dog
Natürlich gibt dies "Hund" aus, aber dies überschreibt nicht die globale Variable "Tier".
animal = 'cat'
def f():
print(animal)
animal = 'dog'
print('after:', animal)
f()
result
UnboundLocalError: local variable 'animal' referenced before assignment
Der erste Versuch, "Tier" zu drucken, führte zu einem Fehler.
Dies ist ein Fehler, dass es eine Beschreibung gibt, die eine lokale Variable in der Funktion deklariert, und Sie versuchen, sie zu drucken, bevor sie geschrieben wird.
animal = 'cat'
def f():
# print(animal)
animal = 'dog'
print('local:', animal)
f()
print('global:', animal)
result
local: dog
global: cat
Deklarieren Sie in f ()
die lokale Variable animal
und drucken Sie sie aus.
Der Druck in der letzten Zeile gibt die globale Variable "Tier" aus.
animal = 'cat'
def f():
global animal
animal = 'dog'
print('local:', animal)
f()
print('global:', animal)
result
local: dog
global: dog
Wenn Sie die globale Variable "animlal" aufrufen, indem Sie "global" in der Funktion verwenden, wird diese globale Variable überschrieben.
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>}
Sie können lokale und globale Variablen als Wörterbuch aufrufen, indem Sie "local ()" und "globals ()" verwenden.
Wenn Sie sich die gedruckten globalen Variablen ansehen, sehen Sie, dass es Variablen gibt, die auf der Python-Seite im Voraus definiert wurden.
def TestFunc():
"""Test func doc"""
print(TestFunc.__name__)
print(TestFunc.__doc__)
TestFunc()
print('global:', __name__)
result
TestFunc
Test func doc
global: __main__
Wenn Sie einen Funktionsnamen angeben, können Sie den __name__
und __doc__
dieser Funktion ausgeben.