It's bad practice to use built-ins like 'list' as a regular variable
name.
ok, but it was just an example (in practice, I always use very long names ;-)
# calling method 1:
execute (S[0], S[4] )

# calling method 2:
execute ( ( S[0], S[4] ) )

Let's take a look at those side-by-side:
execute (S[0], S[4] )
execute ( ( S[0], S[4] ) )

Now, which one *looks* better?

# or *the extra flexibility)
mylist = ( S[0], S[4] )
execute ( mylist )

Also, take into consideration the opposite end of the pole; you have
your list of arguments (args), and your about to call a function that
was declared something like this:
def someFunction(arg1, arg2, arg3):
  # etc.
Which is clearer?
someFunction(*args)
someFunction(args[0], args[1], args[2])

And if you've got a variable number of arguments, it becomes virtually
impossible to avoid using the *args syntax.

# So with this construct, I have all flavours:

def chunk_plot(*args):
   if len(args)==1: my_example_var = args[0]
   else:                 my_example_var = args
   for i in range  ( len ( my_example_var ) ):
       ... do something with  my_example_var [i]

# calling the procedure
chunk_plot (S[1], S[4])
chunk_plot ( ( S[1], S[4] ) )
my_action_list = ( S[1], S[2] )
chunk_plot ( my_action_list )


And sorry, no need for kwargs for now ;-)

thanks guys,
Stef
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to