On Sun, 2009-02-22 at 11:44 -0800, Ravi wrote:
> The following code didn't work:
>
> class X(object):
> def f(self, **kwds):
> print kwds
> try:
> print kwds['i'] * 2
> except KeyError:
> print "unknown keyword argument"
> self.g("string", **kwds)
^^^^^^
This means call g() with kwds passed as keyword arguments.
> def g(self, s, kwds):
The method signature is not expecting keyword arguments.
> print s
> print kwds
>
> if __name__ == "__main__":
> x = X()
> x.f(k = 2, j = 10)
>
>
> However the following did:
>
> class X(object):
> def f(self, **kwds):
> print kwds
> try:
> print kwds['i'] * 2
> except KeyError:
> print "unknown keyword argument"
> self.g("string", **kwds)
>
> def g(self, s, **kwds):
^^^^^^
The method signature expects (optionally) keyword arguments.
> print s
> print kwds
>
> if __name__ == "__main__":
> x = X()
> x.f(k = 2, j = 10)
>
>
--
http://mail.python.org/mailman/listinfo/python-list