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