[Python-Dev] Enum: subclassing? (original) (raw)

Eli Bendersky eliben at gmail.com
Wed May 1 22:05:53 CEST 2013


On Wed, May 1, 2013 at 11:59 AM, Georg Brandl <g.brandl at gmx.net> wrote:

Am 01.05.2013 20:44, schrieb Antoine Pitrou: > On Wed, 01 May 2013 10:21:30 -0700 > Ethan Furman <ethan at stoneleaf.us> wrote: >> We may not want to /completely/ disallow subclassing. Consider: >> >> --> class StrEnum(str, Enum): >> ... '''string enums for Business Basic variable names''' >> ... >> --> class Vendors(StrEnum): >> EnumError: subclassing not allowed > > I don't see the point of disallowing subclassing. It sounds like > a pointless restriction. > > However, perhaps the constructor should forbid the returning of a base > type, e.g.: > > class Season(Enum): > spring = 1 > > class MySeason(Season): > """I look nicer than Season""" > > MySeason('spring') > ... > ValueError: Season.spring is not a MySeason instance > > (what this means is perhaps the subclassing of non-empty enum classes > should be forbidden)

That's exactly what's implemented in the ref435 code at the moment. It can't be because call is by-value lookup, not by-name lookup. By-name lookup is Season.spring or getattr(Season, 'spring')

Eli -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130501/970efde6/attachment.html>



More information about the Python-Dev mailing list