A
alust
Hello,
Can somebody explain this strange (to me) effect please.
In this program it is impossible to access a global variable within a
function:
$ cat /tmp/test.py
x='xxx'
def f():
print x
del x
f()
$ python /tmp/test.py
Traceback (most recent call last):
File "/tmp/test.py", line 6, in <module>
f()
File "/tmp/test.py", line 3, in f
print x
UnboundLocalError: local variable 'x' referenced before assignment
But if we comment the del operator the program will work:
$ cat /tmp/test.py
x='xxx'
def f():
print x
#del x
f()
$ python /tmp/test.py
xxx
So why in this example the print operator is influenced by del
operator
that should be executed after it?
Can somebody explain this strange (to me) effect please.
In this program it is impossible to access a global variable within a
function:
$ cat /tmp/test.py
x='xxx'
def f():
print x
del x
f()
$ python /tmp/test.py
Traceback (most recent call last):
File "/tmp/test.py", line 6, in <module>
f()
File "/tmp/test.py", line 3, in f
print x
UnboundLocalError: local variable 'x' referenced before assignment
But if we comment the del operator the program will work:
$ cat /tmp/test.py
x='xxx'
def f():
print x
#del x
f()
$ python /tmp/test.py
xxx
So why in this example the print operator is influenced by del
operator
that should be executed after it?