Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erklärung von Variablen und Umfang in Python

Detaillierte Erklärung von Variablen und Umfang in Python

WBOY
WBOYOriginal
2016-08-04 08:55:391641Durchsuche

Einführung in den Geltungsbereich

Es gibt 4 Arten von Bereichen in Python: L: lokal, lokaler Bereich, dh in der Funktion definierte Variablen

E: Einschließen, der lokale Bereich der verschachtelten übergeordneten Funktion, d. h. der lokale Bereich der übergeordneten Funktion, die diese Funktion enthält, aber nicht global;

G: globale Variablen, bei denen es sich um auf Modulebene definierte Variablen handelt; B: integrierte Variablen in systemfesten Modulen wie int, bytearray usw. Die Prioritätsreihenfolge bei der Suche nach Variablen lautet: lokaler Bereich > äußerer Bereich > global im aktuellen Modul > in Python integrierter Bereich, der LEGB ist.

x = int(2.9) # int built-in
g_count = 0 # global
def outer():
o_count = 1 # enclosing
def inner():
i_count = 2 # local
Natürlich sind lokal und einschließend relativ, und die einschließende Variable ist auch lokal relativ zur oberen Ebene.

#定义变量a
>>> a = 0
>>> print a
0
#定义函数p()
>>> def p():
... print a
... 
>>> p()
0
#定义函数p2()
>>> def p2():
... print a
... a = 3
... print a
... 
>>> p2() # 运行出错,外部变量a先被引用,不能重新赋值
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 2, in p2
UnboundLocalError: local variable 'a' referenced before assignment
#定义函数p3()
>>> def p3():
... a = 3 # 不引用直接赋值
... print a
... 
>>> p3()
3
>>> print a
0 # 外部变量a并未改变
Das Obige ist die detaillierte Erklärung der vom Herausgeber eingeführten Variablen und Bereiche in Python. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!

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