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
  f(this:that=other)
syntax may have uses, other than optional static typing.

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


Jonathan




-- http://mail.python.org/mailman/listinfo/python-list

Reply via email to