Like c enumeration in python3 [ERRATA]
On 3/22/2020 11:37 PM, DL Neil via Python-list wrote:
> On 23/03/20 3:32 PM, Paulo da Silva wrote:
>> ?s 02:18 de 23/03/20, Paulo da Silva escreveu:
>>> Suppose a class C.
>>> I want something like this:
>>> class C:
>>> ????def __init__ ...
>>> ??????? ...
>>> These constants come from an enum in a .h (header of C file).
>>> They are many and may change from time to time.
>>> Is there a way to somehow define them from inside __init__ giving for
>>> example a list of names as strings?
>>> There is an additional problem: C is not recognized inside __init__!
> Please read the PSL docs carefully, because Python's enums seem to
> differ from those in other languages - sometimes in significant ways,
> and sometimes in a subtle manner!
> I have been asking similar questions recently - particularly wanting to
> (also) use the "strings", because of the effort of upgrading many
> modules of code at the same time (the manual, or was it the PEP(?)
> refers to the need to upgrade the PSL to use enums, and to the effort
> that might cost - I suggest there has been little/v.slow take-up, but
> then keeping the PSL updated is a subject of a great many conversations,
> Python's enums cannot be changed. Once set, C.KA cannot be changed to 1
I am not sure what you are saying. The OP's class is not an enum in the
enum module sense. Class attributues are usually mutable.
>>> class C:
K = 0
>>> C.K = 1
Terry Jan Reedy