On Wed, Aug 26, 2020 at 4:01 PM Christopher Barker <[email protected]>
wrote:
> Yes, it's slightly funny that square brackets convert to `index` rather
>> than `*index`, but that ship sailed very long ago, and it's no big deal.
>> There's no problem that needs solving and no need for code churn.
>>
> TL;DR -- let's watch the strong language here -- these proposals do
> attempt to address a real problem -- probably not worth the downsides, but
> this "doesn't solve any problem", "no one asked for it", etc, is really
> dismissive.
>
I have read hundreds of comments in this thread. As I stated, I have yet
to see *anyone* identify a "problem that needs solving" with all the
convoluted new objects and weird support methods. There is absolutely
nothing whatsoever that cannot be easily done with the obvious and
straightforward signature:
.__getitem__(self, index, **kws)
Not one person has even vaguely suggested a single use case that cannot be
addressed that way, nor even a single case where a different approach would
even be slightly easier to work with.
... there was an odd response that a custom class might want to specify its
special keywords. Which of course they can1 I was just giving the
shorthand version. Some particular class can allow and define whichever
keywords it wants, just like with every other function or method.
---
Yes, the parser will have to do something special with the stuff in square
brackets. As it has always done something special for stuff in square
brackets. Obviously, if we call:
mything[1, 2:3, four=4, five=5]
That needs to get translated, at the bytecode level, into the equivalent of:
mything.__getitem__((1, slice(2,3)), four=4, five=5)
But the class MyThing is free to handle its keyword arguments `four` and
`five` how it likes. They might have defaults or not (i.e. **kws). I
think dict and list should, for now, raise an exception if they see any
**kws (but ignoring them is not completely absurd either).
The only question that seems slightly reasonable to see as open is "What is
`index` if only keywords are subscripted?" Some sort of sentinel is
needed, but conceivably None or an empty tuple wouldn't be backward
compatible since those *can* be subscripts legally now.
--
The dead increasingly dominate and strangle both the living and the
not-yet born. Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/K4BRZIV6KIQIHLMU2SV765XGG73OGA3H/
Code of Conduct: http://python.org/psf/codeofconduct/