On 04/24/2016 09:10 AM, Chris Angelico wrote:
On Mon, Apr 25, 2016 at 2:04 AM, Ethan Furman <et...@stoneleaf.us> wrote:
Unfortunately, the empty tuple tends to be a singleton, so there is no way
to tell that red and default are (supposed to be) the same and blue is
(supposed to be) different:

--> a = b = ()
--> c = ()
--> a is b
True
--> a is c
True

If you have an idea on how to make that work I am interested.

Easy: allow an empty list to have the same meaning as an empty tuple.
Every time you have [] in your source code, you're guaranteed to get a
new (unique) empty list, and then multiple assignment will work.

*sigh*

Where were you three years ago?  ;)

Actually, thinking about it a bit more, if we did that then one could not use an empty list as an enum value. Why would one want to? No idea, but to make it nearly impossible I'd want a much better reason than a minor inconvenience:

class Numbers:
   def __init__(self, value=0):
      self.value = value
   def __call__(self, value=None):
      if value is None:
          value = self.value
      self.value = value + 1
      return value

a = Numbers()

class SomeNumbers(Enum):
   one = a()
   two = a()
   five = a(5)
   six = seis = a()

One extra character, and done.

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to