[EMAIL PROTECTED] wrote:
> The following program does not work if you uncomment     #lis =
> ["xmms2"] + list(args)
> 
> Evidently Python is opting for the nullary constructor list() as
> opposed to the other one which takes a sequence. But no newcomer would
> know this. And the Python docs dont give a good example of dealing with
> taking a sequence of args and converting it to a list.

Evidently you overlooked having defined a list() in global scope
yourself which takes no arguments.

> I must've spent 40 minutes looking through my ora books, googling and
> irc'ing in vane on this.
> 
> import subprocess
> 
> def xmms2(*args):
>     #lis = ["xmms2"] + list(args)
>     lis = ["xmms2"] + [a for a in args]
>     output = subprocess.Popen(lis,
> stdout=subprocess.PIPE).communicate()[0]
>     return output.splitlines()
> 
> def list():
  ^^^^^^^^^^^

This is called by list(args) above, and the call fails.
If you want to avoid such clashes, don't name your functions list,
dict, int, str etc.

Georg
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to