[Python-Dev] Enum: subclassing? (original) (raw)
Eli Bendersky eliben at gmail.com
Wed May 1 22:43:22 CEST 2013
- Previous message: [Python-Dev] Enum: subclassing?
- Next message: [Python-Dev] Enum: subclassing?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, May 1, 2013 at 1:33 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
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.
What do you need MySeason for, though? IIUC, you don't ask to allow adding enum values in it, so it only leaves adding extra functionality (methods)? What are the use cases?
Eli -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130501/58478009/attachment.html>
- Previous message: [Python-Dev] Enum: subclassing?
- Next message: [Python-Dev] Enum: subclassing?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]