Eric Wieser <wieser.eric+py...@gmail.com> added the comment: Not necessarily an argument against this feature, but two workarounds exist for this already:
1. Use `nonlocal` to prevent `value` going into the class namespace: value = None class BaudRate(enum.Enum): nonlocal value for value in rates: locals()['B%d' % value] = value @classmethod def valid_rate(cls, value): return (any(value == item.value for item in cls)) 2. Use `types.new_class`, which is more suited to dynamic class creation anyway: def make_cls(ns): for value in rates: ns['B%d' % value] = value @classmethod def valid_rate(cls, value): return (any(value == item.value for item in cls)) ns['valid_rate'] = valid_rate types.new_class('BaudRate', (enum.Enum,), exec_body=make_cls) ---------- nosy: +Eric.Wieser _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31801> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com