I'm writing a factory function that needs to use keywords in the produced function, not the factory. Here's a toy example:
def factory(flag): def foo(obj, arg): if flag: # use the spam keyword to method() return obj.method(spam=arg) else: # use the ham keyword return obj.method(ham=arg) return foo Problem: the test of which keyword to use is done every time the produced function is called, instead of once, in the factory. I thought of doing this: def factory(flag): if flag: kw = 'spam' else: kw = 'ham' def foo(obj, arg): kwargs = dict([(kw, arg)]) return obj.method(**kwargs) return foo Is this the best way of doing this? Are there any alternative methods that aren't risky, slow or obfuscated? Before anyone suggests changing the flag argument to the factory to the name of the keyword, this is only a toy example, and doing so in my actual code isn't practical. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list