
On 1/17/07, Joel Bender <jjb5@cornell.edu> wrote:
Where the <>s indicate these special semantics.
The syntax bothers me, but launched an idea: How about separating parameter default value issues from instance specific definition time objects?
def foo(a, b=4, c=None): local d = Bar([2,3,4]) ...
The function code can decide if it wants to use c, provided by the caller, or d when no value for c is given. The developer may decide that None is not a good value for 'no value for c', but that's a design decision.
I dont understand how that would be different than doing c = c if c is not None else Bar([2,3,4])
You can do this now with:
def foo(a, b=4, c=None): ...
foo.func_dict['d'] = Bar([2,3,4])
This would not really work in practice. See this:
def f(): ... print a ... f.func_dict['a'] = 10 f() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in f NameError: global name 'a' is not defined
But I would rather see this inside foo(), jamming variables into the func_dict bothers me too :-).
The new keyword would work for classes, but be a functional noop:
class Snorf: local eggs = 3 spam = 4
Joel _______________________________________________ Python-ideas mailing list Python-ideas@python.org http://mail.python.org/mailman/listinfo/python-ideas
-- Read my blog! I depend on your acceptance of my opinion! I am interesting! http://ironfroggy-code.blogspot.com/