extra positional arguments before optional parameters syntax

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • MisterWilliam

    extra positional arguments before optional parameters syntax

    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 misunderstandin g 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().

    Thanks,
    William Chang
  • George Sakkis

    #2
    Re: extra positional arguments before optional parameters syntax

    On Jun 18, 5:25 pm, MisterWilliam <mr.williamch.. .@gmail.comwrot e:
    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 misunderstandin g 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.)
    You didn't search hard enough; it's three PEPs earlier:

    This PEP proposes a change to the way that function arguments are assigned to named parameter slots. In particular, it enables the declaration of “keyword-only” arguments: arguments that can only be supplied by keyword and which will never be automatic...


    George

    Comment

    Working...