On Sun, Jan 16, 2022 at 05:53:19PM -0800, Brendan Barnwell wrote:

> >     f{1, 2, 3}
> 
>       I don't like that syntax.  In the first place, as others have noted, 
>       it treads too close to existing function-call and indexing syntax.  In 
> those syntaxes, `f` is a name, whereas here it is not a name but just a 
> syntactic marker (as in f-strings).

I think the horse has well and truly bolted on that. We've had syntactic 
markers that look like names forever: r"" goes back to Python 1.x days.

Given the proposed syntax `f{a, b, c}`, that would be a transformation 
of three arguments a, b and c to a frozenset. That makes it closer to a 
function call than r"abc", which is not a transformation at all.

So if this looks like a function call, good, that's because semantically 
it is kind of like a function call.


>       In the second place, I don't like the idea of using prefixes to 
>       change the types of objects like this.  As far as I know we only have 
> one 
> example of that, namely byte strings.

Okay, so we have a precedence where a prefix on the delimiter changes 
the type: b'' is a different type to ''. In Python 2, it was the other 
way around, it was u'' that returned a different type.

I think that the use of a prefix has been a moderately good design, good 
enough to cautiously extend it beyond raw strings to unicode strings, 
f-strings, and byte-strings, and beyond that to other delimiters.

But if you think that the difference between '' and b'' is a terrible 
design flaw that has caused all sorts of badness in Python 3, I'm all 
ears. Please explain, and persuade me.



>       I would prefer some sort of augmented bracket notation, like {:1, 2, 
> 3:} or something along those lines.

You don't think that people will associate {:1, 2:} with badly-written 
dicts rather than sets? If not, is there some sort of mental association 
between frozensets and those colons inside the set syntax?



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

Reply via email to