A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2017-October/149843.html below:

[Python-Dev] PEP 560 vs metaclass' class definition protections [was Re: What is the design purpose of metaclasses ...]

[Python-Dev] PEP 560 vs metaclass' class definition protections [was Re: What is the design purpose of metaclasses ...] [Python-Dev] PEP 560 vs metaclass' class definition protections [was Re: What is the design purpose of metaclasses ...]Ethan Furman ethan at stoneleaf.us
Sat Oct 14 12:14:34 EDT 2017
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~
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4