Antoon Pardon <[EMAIL PROTECTED]> writes: > I know what happens, I would like to know, why they made this choice. > One could argue that the expression for the default argument belongs > to the code for the function and thus should be executed at call time. > Not at definion time. Just as other expressions in the function are > not evaluated at definition time.
The idiom to get a default argument evaluated at call time with the current behavior is: def f(arg = None): if arg is None: arg = BuildArg() What's the idiom to get a default argument evaluated at definition time if it were as you suggested? <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list