On Fri, Sep 18, 2020 at 11:04 PM Ricky Teachey <ri...@teachey.org> wrote:
>
> On Fri, Sep 18, 2020, 8:34 AM Chris Angelico <ros...@gmail.com> wrote:
>>
>> On Fri, Sep 18, 2020 at 10:26 PM Ricky Teachey <ri...@teachey.org> wrote:
>> >
>> > On Fri, Sep 18, 2020, 8:17 AM Ricky Teachey <ri...@teachey.org> wrote:
>> >>
>> >>
>> >> Why not just grow a parse method on str that returns a dict and do it 
>> >> this way?
>> >>
>> >>
>> >> q = "{a} {b}"
>> >> p = "1 2"
>> >> (a, b) = q.parse(p)
>> >
>> >
>> > Sorry that should have been:
>> >
>> > (a, b) = q.parse(p).values()
>> >
>>
>> You're using a dictionary as if it were a tuple. That's going to cause
>> a LOT of pain when someone does something like:
>>
>> a, b = "{b} {a}".parse(p).values()
>>
>> and they come out in the wrong order. Bad bad bad idea. Don't have
>> names if they're going to be pure lies.
>>
>> ChrisA
>
>
> I'm not sure I understand the point you are making here since dictionaries 
> have preserved order since python 3.6...?
>
> The same problem exists here:
>
> a, b  = 2, 1
> assert a == 1. # whoops got the order wrong
>

But you don't have any sort of lie in the RHS about the name mapping.
It's just a sequence, so people will expect it to be a sequence. If
the parser incorporates names, people will expect it to use those
names. Why have it return a dictionary if you're going to assume and
mandate that it be a sequence?

ChrisA
_______________________________________________
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/B2GMOCYO75KDCXLRTUW6H6FFYKKTV6FI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to