Es gibt 2 Möglichkeiten, eine Variable als global zu deklarieren:
1. Variable innerhalb von Funktionen zuweisen und globale Zeile verwenden
def declare_a_global_variable():
global global_variable_1
global_variable_1 = 1
# Note to use the function to global variables
declare_a_global_variable()
2. Variable außerhalb von Funktionen zuweisen:
global_variable_2 = 2
Jetzt können wir diese deklarierten globalen Variablen in den anderen Funktionen verwenden:
def declare_a_global_variable():
global global_variable_1
global_variable_1 = 1
# Note to use the function to global variables
declare_a_global_variable()
global_variable_2 = 2
def print_variables():
print(global_variable_1)
print(global_variable_2)
print_variables() # prints 1 & 2
Anmerkung 1:
Wenn Sie eine globale Variable innerhalb einer anderen Funktion ändern wollen, wie update_variables()
sollten Sie die globale Zeile in dieser Funktion verwenden, bevor Sie die Variable zuweisen:
global_variable_1 = 1
global_variable_2 = 2
def update_variables():
global global_variable_1
global_variable_1 = 11
global_variable_2 = 12 # will update just locally for this function
update_variables()
print(global_variable_1) # prints 11
print(global_variable_2) # prints 2
Anmerkung 2:
Es gibt eine Ausnahme für Anmerkung 1 für Listen- und Wörterbuchvariablen, wenn keine globale Zeile innerhalb einer Funktion verwendet wird:
# declaring some global variables
variable = 'peter'
list_variable_1 = ['a','b']
list_variable_2 = ['c','d']
def update_global_variables():
"""without using global line"""
variable = 'PETER' # won't update in global scope
list_variable_1 = ['A','B'] # won't update in global scope
list_variable_2[0] = 'C' # updated in global scope surprisingly this way
list_variable_2[1] = 'D' # updated in global scope surprisingly this way
update_global_variables()
print('variable is: %s'%variable) # prints peter
print('list_variable_1 is: %s'%list_variable_1) # prints ['a', 'b']
print('list_variable_2 is: %s'%list_variable_2) # prints ['C', 'D']
0 Stimmen
Unabhängig davon, wo Sie "global" vor dem Variablennamen erwähnt haben, kann sie überall wie eine normale lokale Variable verwendet werden, sobald Python sie als mit dem Schlüsselwort "global" gelesen hat. Aber es ist eine sehr schlechte Idee, es sei denn, die Variable ist für das gesamte Projekt gemeinsam. Zum Beispiel: project_name, database_url