Explicit variable declaration
Terry Reedy
tjreedy at udel.edu
Thu Apr 24 04:40:25 EDT 2008
"Filip Gruszczynski" <gruszczy at gmail.com> wrote in message
news:1be78d220804231829k2c040fat80f6fe8b96e1b7cf at mail.gmail.com...
|> If you want to just declare that name exist, but doesn't want to
| > declare the type, why don't you just do this:
Names do not 'exist' in Python, nor do they have types. They are bound to
objects that have types. Learn to program Python as Python, not one of
those languages with a quite different model of names and values.
| > def somefunc():
| > nonlocal = nonlocal
Syntax error in 3.0. Error or nonsense in 2.x
| > local = 0 # or None or [] or an initial value
| > #
| > return nonlocal * local
|
| Err.. I don't quite get. How it may help me? Could you explain?
Forget the above. The only 'declarations' in Python, 'global' and
'nonlocal' are for the specialized purpose of *binding* names that are not
in the local namespace of a function or nested function. They are only
needed because otherwise names that get bound are otherwise assumed to be
local. See the language ref section on function defs.
tjr
More information about the Python-list
mailing list