This article brings you a detailed explanation (code example) of enumeration types in Python. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Python’s native types do not include enumeration types. To provide a better solution, Python added the enum standard library in version 3.4 via PEP 435.
The enumeration type can be regarded as a label or a collection of constants, usually used to represent certain limited collections, such as week, month, status, etc. What do we do when there is no specifically provided enumeration type? Generally, it is implemented through a dictionary or class:
1 2 3 4 5 6 7 8 9 |
|
This way of implementing enumeration is of course no problem if it is used carefully. After all, it is a compromise. s solution. The danger is that it can be modified.
Using Enum
A better way is to use the Enum
type provided by the standard library. The official library is trustworthy. Versions before 3.4 can also download supported libraries through pip install enum
. Simple example:
1 2 3 4 5 |
|
Enumeration members have values (repeatable by default), and enumeration members have friendly string representations:
1 2 3 4 5 6 7 8 |
|
Enumeration types are not instantiable and cannot be changed.
Define enumeration
When defining an enumeration, the member name is not allowed to be repeated
1 2 3 4 |
|
The member value is allowed to be the same, the second member The name is regarded as an alias of the first member
1 2 3 4 5 6 7 8 9 |
|
If you cannot define the same member value, you can decorate it with unique
1 2 3 4 5 6 |
|
Enumeration value
You can get members by member name or member value:
1 2 3 |
|
Each member has a name attribute and a value attribute:
1 2 3 |
|
supports iteration through members in the defined order. If there are members with duplicate values, only the first duplicate member is obtained:
1 2 |
|
Special attributes__members__
is a An ordered dictionary mapping names to members, through which traversal can also be done:
1 2 |
|
Enumeration comparison
Members of an enumeration can be passed through is
Identity comparison or equality comparison through ==
:
1 2 3 4 5 |
|
Enumeration members cannot perform size comparison:
1 |
|
Extended enumeration IntEnum
IntEnum is an extension of Enum. Different types of integer enumerations can also be compared with each other:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Summary
enum module function is very clear , its usage is also simple, and its implementation method is worth learning. If you have the opportunity, you can take a look at its source code.
The above is the detailed content of Detailed explanation of enumeration types in Python (code examples). For more information, please follow other related articles on the PHP Chinese website!