Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen globalen Variablen und lokalen Variablen in Python (detaillierte Codeerklärung)

Der Unterschied zwischen globalen Variablen und lokalen Variablen in Python (detaillierte Codeerklärung)

藏色散人
藏色散人Original
2019-03-16 14:16:095905Durchsuche

Der Unterschied zwischen globalen Variablen und lokalen Variablen in Python (detaillierte Codeerklärung)

Globale Variablen sind Variablen, die außerhalb der Funktion definiert und deklariert werden und wir müssen sie innerhalb der Funktion verwenden.

#这个函数使用全局变量s
def f():  
    print s  
  
# 全局作用域
s = "I love Python"
f()

Ausgabe:

I love Python

Wenn eine Variable mit demselben Namen innerhalb eines Funktionsbereichs definiert ist, wird anstelle des globalen Werts nur der in der Funktion angegebene Wert ausgegeben.

# 这个函数有一个与s同名的变量。
def f():  
    s = "Me too."
    print s  
  
# 全局作用域
s = "I love Python" 
f() 
print s

Ausgabe:

Me too
I love Python

Bevor wir die Funktion f() aufrufen, wird die Variable s als String „I love Python“ definiert. Die einzige Anweisung in f() ist die „print s“-Anweisung. Da es keine lokalen s gibt, wird der Wert globaler s verwendet.

Die Frage ist, was passiert, wenn wir den Wert von s innerhalb der Funktion f() ändern? Wird es die Gesamtsituation beeinflussen?

Wir testen es im folgenden Code:

def f():  
    print s 
  
    # 如果我们在下面评论,这个程序不会显示错误。
    s = "Me too."
  
    print s 
  
#全局作用域
s = "I love Python" 
f() 
print s

Ausgabe:

Line 2: undefined: Error: local variable 's' referenced before assignment

Damit das obige Programm funktioniert, müssen wir das Schlüsselwort „global“ verwenden. Wenn wir sie zuweisen/ändern möchten, müssen wir nur das globale Schlüsselwort in der Funktion verwenden. Für das Drucken und Zugreifen sind keine Globals erforderlich.

Python „geht davon aus“, dass wir aufgrund der Zuweisung in f() eine lokale Variable benötigen, sodass die erste print-Anweisung diese Fehlermeldung auslöst. Jede innerhalb einer Funktion geänderte oder erstellte Variable ist lokal, sofern sie nicht als globale Variable deklariert wurde. Um Python mitzuteilen, dass wir globale Variablen verwenden möchten, müssen wir das Schlüsselwort „global“

verwenden, wie im folgenden Beispiel gezeigt:

# 这个函数修改全局变量's' 
def f(): 
    global s 
    print s 
    s = "Look for Python"
    print s  
  
#全局作用域
s = "Python is great!" 
f() 
print s

Ausgabe:

Python is great!
Look for Python.
Look for Python.

A nice Beispiel:

a = 1
  
# 使用global,因为没有本地'a' 
def f(): 
    print 'Inside f() : ', a 
  
#变量“a”被重新定义为局部变量
def g():     
    a = 2
    print 'Inside g() : ',a 
  
#使用全局关键字修改全局'a'
def h():     
    global a 
    a = 3
    print 'Inside h() : ',a 
  
# 全局作用域
print 'global : ',a 
f() 
print 'global : ',a 
g() 
print 'global : ',a 
h() 
print 'global : ',a

Ausgabe:

global :  1
Inside f() :  1
global :  1
Inside g() :  2
global :  1
Inside h() :  3
global :  3

Verwandte Empfehlungen: „Python Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen globalen Variablen und lokalen Variablen in Python (detaillierte Codeerklärung). 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