What could 'f(this:that=other):' mean?

Jonathan Fine jfine at pytex.org
Tue Jan 11 19:40:12 CET 2005

Nick Coghlan wrote:
> If the caller is meant to supply a namespace, get them to supply a 
> namespace.
> def f(ns1, ns2):
>   print ns1['a'], ns1['b'], ns2['a'], ns2['b']
> f(ns1 = dict(a=1, b=2), ns2 = dict(a=3, b=4))
> Hey, where's Steve? Maybe his generic objects should be called 
> namespaces instead of bunches. . .
> def f(ns1, ns2):
>   print ns1.a, ns1.b, ns2.a, ns2.b
> f(ns1 = namespace(a=1, b=2), ns2 = namespace(a=3, b=4))

Basically, there are three main possibilities.

   f_1(ns1=dict(a=1, b=2), ns2=dict(a=3, b=4))
   f_2(ns1_a=1m, ns1_b=2, ns2_a=3, ns2_b=4)
   f_3(ns1:a=1m, ns1:b=2, ns2:a=3, ns2:b=4)

f_3 is the suggested extension to Python.
f_3 is similar to f_2 for the caller of f_3.
f_3 is similar to f_1 for the implementor of f_3.

Nick points out that a key issue is this:  Is the user meant
to supply arguments belonging to a namespace?

I'm not, at this time, wishing to promote my suggestion.
If I were, I would be well advised to find usage cases.

Rather, I simply wish to point out that the
syntax may have uses, other than optional static typing.

And this I've done.  So for me the thread is closed.


More information about the Python-list mailing list