[Python-ideas] Possible method of distinguishing between set-literals, dict-literals, and odict-literals

Ben Finney ben+python at benfinney.id.au
Tue Jun 16 15:55:40 CEST 2009

Carl Johnson
<cmjohnson.mailinglist at gmail.com> writes:

> we could introduce an empty set-literal and an odict-literal, and add
> a more explicit form to replace the existing set literal.

What do you mean by “more explicit”? The existing set literal syntax
is quite explicit.

> s{} could be the empty set, o{} could be an empty odict, and we could
> leave {} alone as the form for dicts. So, an odict literal would look
> like o{'a':'1', 'b':'2', 'c':'3'} instead of OrderedDict([('a', '1'),
> ('b', '2'), ('c', '3')]). And the set {'a', 'c', 'b'} could
> (optionally?) have a little s{'a', 'c', 'b'} to make it more explicit
> that this is a set, not a dict.

I don't think that word “explicit” means what you think it means.

> So what do people think? Is this too ugly to do?

You haven't really identified a problem that is solved by this. And yes,
I think it's significantly uglier than the existing syntax.

> Does it confuse users who are used to C-style braces? Or is it a
> logical extension of the b"", r"", etc. system that could help make
> things follow EIBI better?

(Presuming you mean “EIBTI”, for “Explicit Is Better Than Implicit”.)

I don't see anything implicit about the following forms:


So I think you're trying to achieve something else other than
“explicit”, but I don't know what it is, nor what the problem is that
needs addressing.

 \           “Never express yourself more clearly than you are able to |
  `\                                               think.” —Niels Bohr |
_o__)                                                                  |
Ben Finney

More information about the Python-ideas mailing list