extra positional arguments before optional parameters syntax

MisterWilliam mr.williamchang at gmail.com
Wed Jun 18 23:25:04 CEST 2008

I noticed that in PEP 3105, the PEP about turning print to print(),
the syntax for print() is defined as follows:
def print(*args, sep=' ', end='\n', file=None)

Ignoring the fact that print is a reserved keyword in python, this is
not valid python because extra positional arguments (*args), cannot
come before optional parameters (sep=' ', end='\n', file=None).

>>> def f(*args, sep=' ', end='\n', file=None):
  File "<stdin>", line 1
    def f(*args, sep=' ', end='\n', file=None):
SyntaxError: invalid syntax

Am I misunderstanding something? Is this type of syntax suppose to be
allowed in a future version of Python? (I can't find anything about
this through my searching.) This kind of syntax seems useful,
especially one wants to overwrite the new function print().

William Chang

More information about the Python-list mailing list