Octavian Rasnita wrote:
It is true that Python doesn't use scope limitations for variables?
Octavian
Python does have scope. The problem is not the lack of scope, to
problem is the shadow declaration of some python construct in the
current scope.
print x # raise NameError
[x for x in range(10)] # shadow declaration of x
print x # will print 9
it can become a problem if you write such code:
index = 1
myNewList = [index*2 for index in [1,2,3,4,5]]
print myNewList(index) # here most new commer would want to use index=1.
To compare to some C construct, python declares the variable in the
current scope while the C construct will create a new scope for the
following block.
IMO, i don't see this one as an issue, because even when coding in C,
you do NOT use the same name for 2 different things. Python shadow
declarations would be a problem for someone used to take "advantage" of
the C construct.
The author states that this is bug prone, I did write a lot of python
lines, never happened to me.
JM
PS : pylint reports such shadow declaration, W0631: 4: Using possibly
undefined loop variable 'x'
--
http://mail.python.org/mailman/listinfo/python-list