[Python-Dev] Enum: subclassing?
Antoine Pitrou
solipsis at pitrou.net
Wed May 1 22:33:44 CEST 2013
More information about the Python-Dev mailing list
Wed May 1 22:33:44 CEST 2013
- Previous message: [Python-Dev] Enum: subclassing?
- Next message: [Python-Dev] Enum: subclassing?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, 1 May 2013 13:05:53 -0700 Eli Bendersky <eliben at gmail.com> wrote: > 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. Ok, I've mixed up the example. But, still, since Season(1) should return the Season.spring singleton, I don't see any reasonable thing for MySeason(1) to return. Hence the request to raise an exception. Regards Antoine.
- Previous message: [Python-Dev] Enum: subclassing?
- Next message: [Python-Dev] Enum: subclassing?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list