[Einführung in die Udemy Python3 + -Anwendung] 64. Namespace und Gültigkeitsbereich

** * 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. ** ** **

■ Namespace und Gültigkeitsbereich

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.

Recommended Posts

[Einführung in die Udemy Python3 + -Anwendung] 64. Namespace und Gültigkeitsbereich
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
[Einführung in die Udemy Python3 + -Anwendung] 35. Vergleichsoperatoren und logische Operatoren
[Einführung in die Udemy Python3 + -Anwendung] 68. Importanweisung und AS
[Einführung in die Udemy Python3 + -Anwendung] 18. Listenmethode
[Einführung in die Udemy Python3 + -Anwendung] 63. Notation zur Einbeziehung des Generators
[Einführung in die Udemy Python3 + -Anwendung] 28. Kollektiver Typ
[Einführung in die Udemy Python3 + -Anwendung] 25. Wörterbuchmethode
[Einführung in die Udemy Python3 + -Anwendung] 13. Zeichenmethode
[Einführung in die Udemy Python3 + -Anwendung] 55. In-Function-Funktionen
[Einführung in die Udemy Python3 + -Anwendung] 48. Funktionsdefinition
[Einführung in die Udemy Python3 + -Anwendung] 21. Taple-Typ
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 39. while-Anweisung, continue-Anweisung und break-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 45. Aufzählungsfunktion
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
[Einführung in die Udemy Python3 + -Anwendung] 41. Eingabefunktion
[Einführung in die Udemy Python3 + -Anwendung] 17. Listenoperation
[Einführung in die Udemy Python3 + -Anwendung] 65. Ausnahmebehandlung
[Einführung in die Udemy Python3 + -Anwendung] 11. Zeichenkette
[Einführung in die Udemy Python3 + -Anwendung] 44. Bereichsfunktion
[Einführung in die Udemy Python3 + -Anwendung] 46. Zip-Funktion
[Einführung in die Udemy Python3 + -Anwendung] 24. Wörterbuchtyp
[Einführung in Udemy Python3 + Application] 50. Positionsargumente, Schlüsselwortargumente und Standardargumente
[Einführung in die Udemy Python3 + -Anwendung] 8. Variablendeklaration
[Einführung in die Udemy Python3 + -Anwendung] 29. Methode festlegen
[Einführung in die Udemy Python3 + -Anwendung] 16. Listentyp
[Einführung in die Udemy Python3 + -Anwendung] 61. Wörterbucheinschlussnotation
[Einführung in die Udemy Python3 + -Anwendung] 22. Auspacken der Taples
[Einführung in die Udemy Python3 + -Anwendung] 49. Funktionszitat und Rückgabewertdeklaration
[Einführung in die Udemy Python3 + -Anwendung] 69. Import des absoluten Pfads und des relativen Pfads
[Einführung in die Udemy Python3 + -Anwendung] 12. Indizieren und Schneiden von Zeichenketten
[Einführung in die Udemy Python3 + -Anwendung] 23. Verwendung von Tapuru
[Einführung in die Udemy Python3 + -Anwendung] 60. Listeneinschlussnotation
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
[Einführung in die Udemy Python3 + -Anwendung] 38. Bei der Beurteilung von None
[Einführung in die Udemy Python3 + -Anwendung] 40. while else-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 62. Legen Sie die Einschlussnotation fest
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
[Einführung in Udemy Python3 + Application] 67. Befehlszeilenargumente
[Einführung in die Udemy Python3 + -Anwendung] 9. Drucken Sie zunächst mit print
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
[Einführung in die Udemy Python3 + -Anwendung] 14. Zeichensubstitution 15.f-Strings
[Einführung in die Udemy Python3 + -Anwendung] 66. Erstellen einer eigenen Ausnahme
[Einführung in Udemy Python3 + Application] 53. Wörterbuch der Schlüsselwortargumente
[Einführung in die Udemy Python3 + -Anwendung] 27. Verwendung des Wörterbuchs
[Einführung in die Udemy Python3 + -Anwendung] 30. Verwendung des Sets
[Einführung in Udemy Python3 + Application] 52. Tapple von Positionsargumenten
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in die Udemy Python3 + -Anwendung] 32.1 Wenn eine Zeile lang wird
[Einführung in Udemy Python3 + Application] 51. Seien Sie vorsichtig mit Standardargumenten
[Einführung in Python3 Tag 12] Kapitel 6 Objekte und Klassen (6.3-6.15)
Einführung in die Python-Sprache
[Einführung in Python3, Tag 22] Kapitel 11 Parallele Verarbeitung und Vernetzung (11.1 bis 11.3)
Einführung in OpenCV (Python) - (2)
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
[Einführung in die Udemy Python3 + -Anwendung] 37. Technik zur Beurteilung, dass es keinen Wert gibt
Einführung in Python Django (2) Win