Heim  >  Artikel  >  Backend-Entwicklung  >  Woher kommen die Daten des Python-Moduls?

Woher kommen die Daten des Python-Moduls?

anonymity
anonymityOriginal
2019-06-17 09:23:092039Durchsuche

Woher kommen die Moduldaten von Python? Das erste, was Sie wissen müssen, ist, wie Python dieses Paketmodul findet. Wenn Sie das Konzept des Namespace besser verstehen, können Sie wissen, woher die Moduldaten von Python stammen.

Woher kommen die Daten des Python-Moduls?

Suchpfad

Wenn Sie ein Modul importieren, lautet die Suchreihenfolge des Python-Parsers für Modulspeicherorte:

1. Aktuelles Verzeichnis

2. Wenn es sich nicht im aktuellen Verzeichnis befindet, durchsucht Python jedes Verzeichnis unter der Shell-Variablen PYTHONPATH.

3. Wenn keiner gefunden wird, überprüft Python den Standardpfad. Unter UNIX ist der Standardpfad im Allgemeinen /usr/local/lib/python/.

Der Modulsuchpfad wird in der Variablen sys.path des Systemmoduls gespeichert. Die Variablen enthalten das aktuelle Verzeichnis, PYTHONPATH und das durch den Installationsprozess festgelegte Standardverzeichnis.

Namespaces und Scopes

Variablen sind Namen (Bezeichner), die übereinstimmende Objekte haben. Ein Namespace ist ein Wörterbuch, das Variablennamen (Schlüssel) und die entsprechenden Objekte (Werte) enthält.

Ein Python-Ausdruck kann auf Variablen im lokalen Namespace und im globalen Namespace zugreifen. Wenn eine lokale Variable denselben Namen wie eine globale Variable hat, überschreibt die lokale Variable die globale Variable.

Jede Funktion hat ihren eigenen Namensraum. Die Gültigkeitsbereichsregeln für Klassenmethoden sind dieselben wie für reguläre Funktionen.

Python errät intelligent, ob eine Variable lokal oder global ist, vorausgesetzt, dass jede innerhalb einer Funktion zugewiesene Variable lokal ist.

Wenn Sie also einer globalen Variablen innerhalb einer Funktion einen Wert zuweisen möchten, müssen Sie die globale Anweisung verwenden.

Der Ausdruck global VarName teilt Python mit, dass VarName eine globale Variable ist, sodass Python nicht im lokalen Namespace nach dieser Variablen sucht.

Zum Beispiel definieren wir eine Variable Money im globalen Namensraum. Anschließend weisen wir der Variablen Money innerhalb der Funktion einen Wert zu, und Python geht dann davon aus, dass Money eine lokale Variable ist. Allerdings haben wir vor dem Zugriff darauf keine lokale Variable Money deklariert, und das Ergebnis ist ein UnboundLocalError. Dieses Problem kann gelöst werden, indem der Kommentar vor der globalen Anweisung gelöscht wird.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money

Das obige ist der detaillierte Inhalt vonWoher kommen die Daten des Python-Moduls?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn