Paul Moore wrote:

But you don't give any reason why you'd want to do that. Why are you
> using subscript notation rather than a simple function call?


Good point. Consider
    >>> def f(*argv): pass
    >>> d = dict()

Now compare
    >>> f(1, 2) = 3
    SyntaxError: can't assign to function call
    >>> d[1, 2] = 3
    >>> d[1, 2]
    3

Item assignment (ie __setitem__) is the one thing that a function call
can't do. If we want keywords in our __getitem__ and so on commands, then
one route for item assignment is to allow
    >>> d[1, 2, a=3, b=4] = 5
as valid syntax.

By the way, another route is to use a simple function call, like so
    >>> d[o(1, 2, a=3, b=4)] = 5
which is already possible today. Some of us don't like this route.

-- 
Jonathan
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/2IWB6XJDTMINHISJ77LQYBQH326FDCUF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to