On Fri, 13 May 2005 11:52:34 +0200, Xah Lee <[EMAIL PROTECTED]> wrote:
> i wanted to define a function where the number of argument matters. > Example: > > def Range(n): > return range(n+1) > > def Range(n,m): > return range(n,m+1) > > def Range(n,m,step): > return range(n,m+1,step) > > this obvious doesn't work. The default argument like > Range(n=1,m,step=1) obviously isn't a solution. > > can this be done in Python? > > or, must the args be changed to a list? It can be written this way: def Range_3args(n, m, step): return range(n, m + 1, step) def Range_2args(n, m): return range(n, m + 1) def Range(n, m = None, step = None): if (m is None) and (step is None): return range(n + 1) if (not (m is None)) and (step is None): return Range_2args(n, m) if (not (m is None)) and (not (step is None)): return Return_3args(n, m, step) return [] -- http://www.peter.dembinski.prv.pl -- http://mail.python.org/mailman/listinfo/python-list