Avi Kak wrote: > Suppose I write a function that I want to be called > with ONLY keyword argumnts, how do I raise an > exception should the function get called with > what look like position-specfic arguments?
here's one way to do it: >>> def func(*args, **kw): ... def myrealfunc(a=1, b=2, c=3): ... print a, b, c ... if args: ... raise TypeError("invalid call") ... return myrealfunc(**kw) ... >>> func(1) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 5, in func TypeError: invalid call >>> func(a=3) 3 2 3 >>> func() 1 2 3 here's another one: >>> def func(dummy=None, a=1, b=2, c=3): ... if dummy is not None: ... raise TypeError("invalid call") ... print a, b, c (but this is easier to trick). hope this helps! </F> -- http://mail.python.org/mailman/listinfo/python-list