On 10/14/2017 08:57 AM, Ivan Levkivskyi wrote:
On 14 October 2017 at 17:49, Ethan Furman wrote:

The problem with PEP 560 is that it doesn't allow the class definition
>> protections that a metaclass does.

Since the discussion turned to PEP 560, I can say that I don't want this
> to be a general mechanism, the PEP rationale section gives several specific
> examples why we don't want metaclasses to implement generic class
> machinery/internals.

Could you please elaborate more what is wrong with PEP 560 and what do you
> mean by "class definition protections"

Nothing is wrong with PEP 560.  What I am referring to is:

class MyEnum(Enum):
   red = 0
   red = 1

The Enum metaclass machinery will raise an error at the "red = 1" line because it detects the redefinition of "red". This check can only happen during class definition, so only the metaclass can do it.

--
~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to