ich habe ein Verhalten in Python welches ich nicht verstehe.
Code: Alles auswählen
#!/usr/bin/env python
THISISAGLOBAL = 25
def func1():
print THISISAGLOBAL
def func2():
THISISAGLOBAL = 30
print THISISAGLOBAL
def func3():
global THISISAGLOBAL
THISISAGLOBAL = 30
print THISISAGLOBAL
def func4():
global THISISAGLOBAL
if 1 == 0:
THISISAGLOBAL = ISNOTEXECUTED
print THISISAGLOBAL
def func5():
if 1 == 0:
locals()['THISISAGLOBAL'] = ISNOTEXECUTED
print THISISAGLOBAL
def func6():
if 1 == 0:
THISISAGLOBAL = 1
print THISISAGLOBAL
func1()
func2()
func1()
func3()
func1()
func4()
func5()
func6()
Code: Alles auswählen
25
30
25
30
30
30
30
Traceback (most recent call last):
File "./globaltest.py", line 41, in ?
func6()
File "./globaltest.py", line 31, in func6
print THISISAGLOBAL
UnboundLocalError: local variable 'THISISAGLOBAL' referenced before assignment
Vielen herzlichen dank im voraus
template