In <[EMAIL PROTECTED]>, Christoph Haas
wrote:
> TestModule.py
> ----------------------------------------
> globalvar = 0
>
> def def1():
> print globalvar
>
> def def2(foo=globalvar):
> print foo
> ----------------------------------------
>
> Running the test.py script prints "123" and "0". So accessing the globalvar
> in def1() works. But if I try to use the global variable as a default
> parameter in def2() it uses the default "0". What is the difference
> between these two? Are there contexts of default parameters?
Default parameters are evaluated *once* when the ``def`` is executed. So
in `def2` the value of `foo` won't be looked up when calling the function
as it is already bound to the value 0.
Ciao,
Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list