[Python-Dev] PEP 218 update questions (original) (raw)

A.M. Kuchling amk@nyman.amk.ca
Sun, 13 Oct 2002 17:38:38 -0400


I've just updated PEP 218 to match the sets.py module that's in CVS.

The original PEP text had a single Set class, and Set instances froze after their hash was called so you could use a set as a dictionary key. sets.py takes a more straightforward approach, with distinct Set and ImmutableSet classes.

Two things in the PEP need to be updated to take this change into account.

  1. The long-term proposal in PEP 218 lists a single built-in conversion function, set(iterable). This made sense when there was a single Set class, but now this needs to be updated.

How would instances of a built-in immutable set type be created? Would there be a second immutable_set() built-in, or would the set() function take an additional argument: set(iterable, immutable=True)?

  1. The PEP proposes {1,2,3} as the set notation and {-} for the empty set. Would there be different syntax for an immutable and a mutable set?

My thought is, "no"; {1,2,3} or {-} is always mutable, and an immutable set would be written as immutable_set({1,2,3}). That's up to python-dev, though, but whatever gets chosen needs to be specified in the PEP.

--amk