Dieser Artikel stellt hauptsächlich den Funktionsumfang in Python vor, der einen bestimmten Referenzwert hat. Jetzt können Freunde in Not darauf verweisen.
In Python ist eine Funktion ein Effekt. Dieser Artikel konzentriert sich auf die Einführung des Funktionsumfangs in Python. Freunde, die interessiert sind, sollten einen Blick darauf werfen
In Python ist eine Funktion ein Bereich
name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:',name) change_name() # 调用函数 print("在外面的name:",name)
Die laufenden Ergebnisse sind wie folgt:
Name im Änderungsnamen: Xiao Yafei
Name außerhalb: xiaoyafei
Lassen Sie uns noch einmal versuchen, wie man in verschachtelten Funktionen sucht?
age = 15 def func(): print('第一层age:',age) # 第一层age: 15 def func2(): age = 73 print("func2中的age:",age) # func2中的age: 73 def func3(): age = 84 print("func3中的age:",age) # func3中的age: 84 func3() # 调用func3函数 func2() # 调用func2函数 func()
Im Über den verschachtelten Funktionen kann gut erklärt werden, dass eine Funktion ein Bereich ist. Ändern wir also jetzt den Code ein wenig, um die Situation zu sehen?
age = 15 def func(): print('第一层age:',age) # 第一层age: 15 def func2(): print("func2中的age:",age) # func2中的age: 15 # 看到没有,如果当前作用域里没有age变量,那么它就会往上找 def func3(): age = 84 print("func3中的age:",age) # func3中的age: 84 func3() # 调用func3函数 func2() # 调用func2函数 func()
Also, zu diesem Zeitpunkt hat jemand gesagt, dass sich viel Unsinn herausgestellt hat Also möchte ich fragen: In der oben genannten verschachtelten Funktion gibt es keine Altersvariable in func2. Wie findet sie also die globale Variable age = 15?
An dieser Stelle Wir müssen uns die Suchreihenfolge des Bereichs ansehen:
Variabler Bereich LEGB
L:locals Der Namespace innerhalb der Funktion, einschließlich lokaler Variablen und tatsächlicher Parameter
E:enclosing Der Namespace der externen verschachtelten Funktion, also der angrenzenden vorherigen Ebene, zum Beispiel: wenn keine Altersvariable vorhanden ist func2, es wird zu func gehen, um dies zu finden
G: globale globale Variable
B: Der Namespace der integrierten integrierten Module
Ähm, lassen Sie uns zunächst verstehen, was ein Namespace ist.
In einem Namespace werden, wie der Name schon sagt, Namen gespeichert gespeichert? Beispielsweise wird x = 1, 1 im Speicher gespeichert. Wo wird also der Variablenname x gespeichert? Der Namensraum ist der Ort, an dem die Bindungsbeziehung zwischen dem Namen x und 1 gespeichert wird Namensräume werden in die folgenden drei Typen unterteilt:
Der Geltungsbereich ist der Geltungsbereich
>>> x = 1 >>> id(1) 1576430608
mit L --> > G --> B-Regeln Suche, das heißt: Wenn es nicht lokal gefunden wird, wird es lokal durchsucht (z. B. Schließungen). in integrierten Funktionen.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonFunktionsumfang in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!