[Python-3000] Set literal

Raymond Hettinger python at rcn.com
Fri Jan 25 01:12:47 CET 2008


> Looking over the code base, frozensets are used rarely. 
> So I don't think this is warranted.

There is no shortage for perfect use cases in the form:

   if urlext in {'html', 'xml', 'php'}:
         . . .


If the curly braces are taken to mean a frozenset,
then the peepholer can code the whole thing as a 
compile time constant.  It is fast and clean.
You need not even be aware that you're using a
frozenset.

The use cases for set literals lean *heavily* toward
situtations where the set doesn't get mutated. It
would be nice if all that code got optimized down
to a compile time constant.

The cases for literals differ quite a bit from
general, dynamically formed sets.  I see little
advantage for {'html', 'xml', 'php'} being mutable.


Raymond


More information about the Python-3000 mailing list