Python style advice

Nick Craig-Wood ncw at axis.demon.co.uk
Tue Feb 10 11:30:02 CET 2004


Wayne Folta <wfolta at netmail.to> wrote:
>  In the specific case where you're trying to map a variable-length 
>  argument list to local variables in a function, you can do the more 
>  Pythonic:
> 
>  def myfunc (a = None, b = None, c = None)

Interesting...  I was thinking in particular of sys.argv with this
example, but the above gave me the idea below which would work quite
well (imagine sys.argv in place of L below)

>>> def f(a=None,b=None,c=None,*extra): print a,b,c
... 
>>> L=[]; apply(f,L)
None None None
>>> L=[1]; apply(f,L)
1 None None
>>> L=[1,2]; apply(f,L)
1 2 None
>>> L=[1,2,3]; apply(f,L)
1 2 3
>>> L=[1,2,3,4]; apply(f,L)
1 2 3
>>> L=[1,2,3,4,5]; apply(f,L)
1 2 3

-- 
Nick Craig-Wood
ncw at axis.demon.co.uk



More information about the Python-list mailing list