Mới trong phiên bản 3.4.
Mã nguồn: lib/enum.py Lib/enum.py
Một bảng liệt kê:
là một tập hợp các tên biểu tượng [thành viên] bị ràng buộc với các giá trị duy nhất
có thể được lặp đi lặp lại để trả lại các thành viên của mình theo thứ tự định nghĩa
Sử dụng Cú pháp gọi để trả về các thành viên theo giá trị
Sử dụng cú pháp chỉ mục để trả về các thành viên theo tên
Các liệt kê được tạo bằng cách sử dụng cú pháp
>>> Color.GREEN4 hoặc bằng cách sử dụng cú pháp gọi chức năng:
>>> from enum import Enum >>> # class syntax >>> class Color[Enum]: ... RED = 1 ... GREEN = 2 ... BLUE = 3 >>> # functional syntax >>> Color = Enum['Color', ['RED', 'GREEN', 'BLUE']]
Mặc dù chúng ta có thể sử dụng cú pháp
>>> Color.GREEN4 để tạo enum, Enums không phải là các lớp Python bình thường. Xem enums khác nhau như thế nào? để biết thêm chi tiết.How are Enums different? for more details.
Ghi chú
Danh pháp
Lớp
>>> Color.GREEN
6 là một liệt kê [hoặc enum]Các thuộc tính
>>> Color.GREEN
7,>>> Color.GREEN
8, v.v., là các thành viên [hoặc thành viên] liệt kê và là hằng số chức năng.Các thành viên ENUM có tên và giá trị [tên của
>>> Color.GREEN
7 là>>> Color['BLUE']
0, giá trị của>>> Color['BLUE']
1 là>>> Color['BLUE']
2, v.v.]
Nội dung mô -đun
>>> Color['BLUE']3>>> Color['BLUE']4 cho enum và các lớp con của nó.>>> Color['BLUE']5Lớp cơ sở để tạo các hằng số được liệt kê.
>>> Color['BLUE']6Lớp cơ sở để tạo các hằng số được liệt kê cũng là các lớp con của
>>> Color['BLUE']7. [Ghi chú]>>> Color['BLUE']8Lớp cơ sở để tạo các hằng số được liệt kê cũng là các lớp con của
>>> Color['BLUE']9. [Ghi chú]>>> list[Color] [, , ]0Lớp cơ sở để tạo các hằng số được liệt kê có thể được kết hợp bằng cách sử dụng các hoạt động bitwise mà không mất tư cách thành viên
>>> list[Color] [, , ]0.>>> list[Color] [, , ]2Lớp cơ sở để tạo các hằng số được liệt kê có thể được kết hợp bằng cách sử dụng các toán tử bitwise mà không mất tư cách thành viên
>>> list[Color] [, , ]2 của họ.>>> list[Color] [, , ]2 Thành viên cũng là các lớp con của>>> Color['BLUE']7. [Ghi chú]>>> list[Color] [, , ]6>>> list[Color] [, , ]7Một bảng liệt kê với các giá trị
>>> list[Color] [, , ]8,>>> list[Color] [, , ]9 và>>> list[reversed[Color]] [, , ]0, để sử dụng với>>> list[reversed[Color]] [, , ]1 để đảm bảo các ràng buộc khác nhau được đáp ứng bởi một bảng liệt kê nhất định.>>> list[reversed[Color]] [, , ]2Một bảng liệt kê với các giá trị
>>> list[reversed[Color]] [, , ]3,>>> list[reversed[Color]] [, , ]4,>>> list[reversed[Color]] [, , ]5 và>>> list[reversed[Color]] [, , ]6 cho phép kiểm soát chi tiết hơn về cách các giá trị không hợp lệ được xử lý trong một bảng liệt kê.>>> list[reversed[Color]] [, , ]7Các trường hợp được thay thế bằng một giá trị thích hợp cho các thành viên Enum.
>>> Color['BLUE']8 mặc định cho phiên bản có tên dưới của tên thành viên, trong khi các enum khác mặc định là 1 và tăng từ đó.>>> list[reversed[Color]] [, , ]9Cho phép các thành viên
>>> Color['BLUE']5 có các thuộc tính mà không mâu thuẫn với tên thành viên.>>> Color.BLUE.name 'BLUE'1Người trang trí lớp Enum đảm bảo chỉ có một tên bị ràng buộc với bất kỳ một giá trị nào.
>>> list[reversed[Color]] [, , ]1Bộ trang trí lớp Enum kiểm tra các ràng buộc có thể chọn người dùng trên một bảng liệt kê.
>>> Color.BLUE.name 'BLUE'3Biến
>>> Color.BLUE.name 'BLUE'4 thành một thành viên. Có thể được sử dụng như một người trang trí.>>> Color.BLUE.name 'BLUE'5Không biến
>>> Color.BLUE.name 'BLUE'4 thành một thành viên. Có thể được sử dụng như một người trang trí.>>> Color.BLUE.name 'BLUE'7Sửa đổi
>>> Color.BLUE.name 'BLUE'8 và>>> Color.BLUE.name 'BLUE'9 của một enum để hiển thị các thành viên của mình là thuộc về mô -đun thay vì lớp của nó. Chỉ nên được sử dụng nếu các thành viên ENUM sẽ được xuất sang không gian tên toàn cầu mô -đun.>>> from datetime import date >>> class Weekday[Enum]: ... MONDAY = 1 ... TUESDAY = 2 ... WEDNESDAY = 3 ... THURSDAY = 4 ... FRIDAY = 5 ... SATURDAY = 6 ... SUNDAY = 7 ... @classmethod ... def today[cls]: ... print['today is %s' % cls[date.today[].isoweekday[]].name] >>> dir[Weekday.SATURDAY] ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']0Trả về một danh sách tất cả các số nguyên power-of-Two có trong một lá cờ.
Mới trong phiên bản 3.6: >>> list[Color]
[, , ]
0, >>> list[Color]
[, , ]
2, >>> list[reversed[Color]]
[, , ]
7
>>> list[Color] [, , ]0,
>>> list[Color] [, , ]2,
>>> list[reversed[Color]] [, , ]7
Mới trong phiên bản 3.11: >>> Color['BLUE']
8, >>> list[Color]
[, , ]
7, >>> list[Color]
[, , ]
6, >>> list[reversed[Color]]
[, , ]
2, >>> from datetime import date
>>> class Weekday[Enum]:
... MONDAY = 1
... TUESDAY = 2
... WEDNESDAY = 3
... THURSDAY = 4
... FRIDAY = 5
... SATURDAY = 6
... SUNDAY = 7
... @classmethod
... def today[cls]:
... print['today is %s' % cls[date.today[].isoweekday[]].name]
>>> dir[Weekday.SATURDAY]
['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']
8, >>> from datetime import date
>>> class Weekday[Enum]:
... MONDAY = 1
... TUESDAY = 2
... WEDNESDAY = 3
... THURSDAY = 4
... FRIDAY = 5
... SATURDAY = 6
... SUNDAY = 7
... @classmethod
... def today[cls]:
... print['today is %s' % cls[date.today[].isoweekday[]].name]
>>> dir[Weekday.SATURDAY]
['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']
9, >>> from enum import auto
>>> class PowersOfThree[Enum]:
... @staticmethod
... def _generate_next_value_[name, start, count, last_values]:
... return [count + 1] * 3
... FIRST = auto[]
... SECOND = auto[]
>>> PowersOfThree.SECOND.value
6
0, >>> from enum import auto
>>> class PowersOfThree[Enum]:
... @staticmethod
... def _generate_next_value_[name, start, count, last_values]:
... return [count + 1] * 3
... FIRST = auto[]
... SECOND = auto[]
>>> PowersOfThree.SECOND.value
6
1, >>> from enum import auto
>>> class PowersOfThree[Enum]:
... @staticmethod
... def _generate_next_value_[name, start, count, last_values]:
... return [count + 1] * 3
... FIRST = auto[]
... SECOND = auto[]
>>> PowersOfThree.SECOND.value
6
2
>>> Color['BLUE']8,
>>> list[Color] [, , ]7,
>>> list[Color] [, , ]6,
>>> list[reversed[Color]] [, , ]2,
>>> from datetime import date >>> class Weekday[Enum]: ... MONDAY = 1 ... TUESDAY = 2 ... WEDNESDAY = 3 ... THURSDAY = 4 ... FRIDAY = 5 ... SATURDAY = 6 ... SUNDAY = 7 ... @classmethod ... def today[cls]: ... print['today is %s' % cls[date.today[].isoweekday[]].name] >>> dir[Weekday.SATURDAY] ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']8,
>>> from datetime import date >>> class Weekday[Enum]: ... MONDAY = 1 ... TUESDAY = 2 ... WEDNESDAY = 3 ... THURSDAY = 4 ... FRIDAY = 5 ... SATURDAY = 6 ... SUNDAY = 7 ... @classmethod ... def today[cls]: ... print['today is %s' % cls[date.today[].isoweekday[]].name] >>> dir[Weekday.SATURDAY] ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']9,
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 60,
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 61,
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 62
Loại dữ liệu¶
classenum.EnumType¶ enum.EnumType¶EnumType là metaclass cho các liệt kê. Có thể phân lớp enumtype - xem phân lớp enumtype để biết chi tiết.metaclass for enum enumerations. It is possible to subclass EnumType – see Subclassing EnumType for details.
EnumType chịu trách nhiệm thiết lập đúng các phương thức
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 63,
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64,
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 và
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 66 trên Enum cuối cùng, cũng như tạo các thành viên Enum, xử lý đúng các bản sao, cung cấp lặp lại lớp Enum, v.v. __Contains __ [CLS, thành viên] ¶[cls, member]¶
Trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 67 Nếu thành viên thuộc về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 68:
>>> some_var = Color.RED >>> some_var in Color True
Ghi chú
Danh pháp
Lớp>>> Color.GREEN6 là một liệt kê [hoặc enum][cls]¶
Các thuộc tính
>>> Color.GREEN7,
>>> Color.GREEN8, v.v., là các thành viên [hoặc thành viên] liệt kê và là hằng số chức năng.
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']Các thành viên ENUM có tên và giá trị [tên của
>>> Color.GREEN7 là
>>> Color['BLUE']0, giá trị của
>>> Color['BLUE']1 là
>>> Color['BLUE']2, v.v.][cls, name]¶
Nội dung mô -đun
>>> Color.GREEN
>>> Color['BLUE']4 cho enum và các lớp con của nó.[cls, name]¶
Lớp cơ sở để tạo các hằng số được liệt kê.
>>> Color['BLUE']Lớp cơ sở để tạo các hằng số được liệt kê cũng là các lớp con của
>>> Color['BLUE']7. [Ghi chú][cls]¶
Lớp cơ sở để tạo các hằng số được liệt kê cũng là các lớp con của
>>> Color['BLUE']9. [Ghi chú]
>>> list[Color] [, , ]Lớp cơ sở để tạo các hằng số được liệt kê có thể được kết hợp bằng cách sử dụng các hoạt động bitwise mà không mất tư cách thành viên
>>> list[Color] [, , ]0.[cls]¶
Lớp cơ sở để tạo các hằng số được liệt kê có thể được kết hợp bằng cách sử dụng các toán tử bitwise mà không mất tư cách thành viên
>>> list[Color] [, , ]2 của họ.
>>> list[Color] [, , ]2 Thành viên cũng là các lớp con của
>>> Color['BLUE']7. [Ghi chú] Một bảng liệt kê với các giá trị
>>> list[Color] [, , ]8,
>>> list[Color] [, , ]9 và
>>> list[reversed[Color]] [, , ]0, để sử dụng với
>>> list[reversed[Color]] [, , ]1 để đảm bảo các ràng buộc khác nhau được đáp ứng bởi một bảng liệt kê nhất định.[cls]¶
Một bảng liệt kê với các giá trị
>>> list[reversed[Color]] [, , ]3,
>>> list[reversed[Color]] [, , ]4,
>>> list[reversed[Color]] [, , ]5 và
>>> list[reversed[Color]] [, , ]6 cho phép kiểm soát chi tiết hơn về cách các giá trị không hợp lệ được xử lý trong một bảng liệt kê.
>>> list[reversed[Color]] [, , ]Các trường hợp được thay thế bằng một giá trị thích hợp cho các thành viên Enum.
>>> Color['BLUE']8 mặc định cho phiên bản có tên dưới của tên thành viên, trong khi các enum khác mặc định là 1 và tăng từ đó. enum.Enum¶
Cho phép các thành viên
>>> Color['BLUE']5 có các thuộc tính mà không mâu thuẫn với tên thành viên. Người trang trí lớp Enum đảm bảo chỉ có một tên bị ràng buộc với bất kỳ một giá trị nào.¶
Bộ trang trí lớp Enum kiểm tra các ràng buộc có thể chọn người dùng trên một bảng liệt kê.
>>> Color.BLUE.name 'BLUE'Biến
>>> Color.BLUE.name 'BLUE'4 thành một thành viên. Có thể được sử dụng như một người trang trí.¶
Không biến
>>> Color.BLUE.name 'BLUE'4 thành một thành viên. Có thể được sử dụng như một người trang trí.
Ghi chú
Danh pháp
Lớp
>>> Color.GREEN6 là một liệt kê [hoặc enum] _phớt lờ_¶¶
>>> some_var = Color.RED >>> some_var in Color True09 chỉ được sử dụng trong quá trình tạo và được loại bỏ khỏi bảng liệt kê sau khi tạo ra hoàn tất.
>>> some_var = Color.RED >>> some_var in Color True09 là danh sách các tên sẽ không trở thành thành viên và tên của họ cũng sẽ bị xóa khỏi bảng liệt kê đã hoàn thành. Xem thời gian cho một ví dụ.TimePeriod for an example. __call __ [cls, value, name = none, \*, module = none, Qualname = none, type = none, start = 1, boundary = none][cls, value, names=None, \*, module=None, qualname=None, type=None, start=1, boundary=None]¶
Phương pháp này được gọi theo hai cách khác nhau:
Để tìm kiếm một thành viên hiện có:
CLS
Lớp enum được gọi.
giá trịGiá trị để tra cứu.
Để sử dụng enum
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 6
8 để tạo một enum mới:CLS
Lớp enum được gọi.
giá trịGiá trị để tra cứu.
Để sử dụng enum>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 6
8 để tạo một enum mới:Tên của enum mới để tạo.
TênTên/giá trị của các thành viên cho enum mới.
Mô -đunTên của mô -đun enum mới được tạo trong.
tên gọiVị trí thực tế trong mô -đun nơi có thể tìm thấy enum này.
loại hìnhMột loại hỗn hợp cho enum mới.
bắt đầuGiá trị số nguyên đầu tiên cho enum [được sử dụng bởi
>>> list[reversed[Color]] [, , ]
7]
Cách xử lý các giá trị ngoài phạm vi từ các hoạt động bit [chỉ
>>> list[Color] [, , ]0]
>>> from datetime import date >>> class Weekday[Enum]: ... MONDAY = 1 ... TUESDAY = 2 ... WEDNESDAY = 3 ... THURSDAY = 4 ... FRIDAY = 5 ... SATURDAY = 6 ... SUNDAY = 7 ... @classmethod ... def today[cls]: ... print['today is %s' % cls[date.today[].isoweekday[]].name] >>> dir[Weekday.SATURDAY] ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']__dir __ [bản thân] ¶[name, start, count, last_values]¶
Trả về
>>> some_var = Color.RED >>> some_var in Color True14 và bất kỳ phương thức công khai nào được xác định trên bản thân .__ Class__:_Generate_Next_Value_ [Tên, Bắt đầu, Đếm, Last_Values] ¶
TênTên của thành viên được xác định [ví dụ: Red Red].
bắt đầuGiá trị bắt đầu cho enum; Mặc định là 1.
last_valuesđếm
Số lượng thành viên hiện được xác định, không bao gồm số này.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 6Một danh sách các giá trị trước đó.[cls, \**kwds]¶
Một staticmethod được sử dụng để xác định giá trị tiếp theo được trả về bởi
>>> list[reversed[Color]] [, , ]7: __init_subclass __ [cls, \ ** kwds] ¶[cls, value]¶
Một lớp được sử dụng để cấu hình thêm các lớp con tiếp theo. Theo mặc định, không làm gì cả.
>>> some_var = Color.RED >>> some_var in Color True0 _missing_ [cls, giá trị] ¶[self]¶
Một lớp học để tìm kiếm các giá trị không tìm thấy trong CLS. Theo mặc định, nó không làm gì cả, nhưng có thể được ghi đè để thực hiện hành vi tìm kiếm tùy chỉnh:
>>> some_var = Color.RED >>> some_var in Color True1 __repr __ [bản thân] ¶[self]¶
Trả về chuỗi được sử dụng cho các cuộc gọi repr []. Theo mặc định, trả về tên enum, tên thành viên và giá trị, nhưng có thể bị ghi đè:
>>> some_var = Color.RED >>> some_var in Color True2 __str __ [bản thân] ¶[self]¶
Trả về chuỗi được sử dụng cho các cuộc gọi str []. Theo mặc định, trả về tên enum và tên thành viên, nhưng có thể bị ghi đè:
>>> some_var = Color.RED >>> some_var in Color True3
__format __ [tự] ¶
Trả về chuỗi được sử dụng cho các cuộc gọi format [] và f-string. Theo mặc định, trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 trả về, nhưng có thể bị ghi đè: Ghi chú enum.IntEnum¶
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> Color['BLUE']5 dẫn đến các số nguyên có giá trị ngày càng tăng, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.
>>> some_var = Color.RED >>> some_var in Color True4
classenum.intenum¶
Intenum giống như enum, nhưng các thành viên của nó cũng là số nguyên và có thể được sử dụng ở bất cứ đâu mà một số nguyên có thể được sử dụng. Nếu bất kỳ hoạt động số nguyên nào được thực hiện với thành viên Intenum, giá trị kết quả sẽ mất trạng thái liệt kê.
Ghi chú
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 is now
>>> some_var = Color.RED >>> some_var in Color True24 to better support the replacement of existing constants use-case.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 was already
>>> some_var = Color.RED >>> some_var in Color True26 for that same reason. Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> Color['BLUE']6 dẫn đến các số nguyên có giá trị ngày càng tăng, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.enum.StrEnum¶
Đã thay đổi trong phiên bản 3.11:
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 hiện là
>>> some_var = Color.RED >>> some_var in Color True24 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện tại.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 đã là
>>> some_var = Color.RED >>> some_var in Color True26 vì lý do tương tự.
__format __ [tự] ¶
Trả về chuỗi được sử dụng cho các cuộc gọi format [] và f-string. Theo mặc định, trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 trả về, nhưng có thể bị ghi đè:
__format __ [tự] ¶
Trả về chuỗi được sử dụng cho các cuộc gọi format [] và f-string. Theo mặc định, trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 trả về, nhưng có thể bị ghi đè:
__format __ [tự] ¶
Trả về chuỗi được sử dụng cho các cuộc gọi format [] và f-string. Theo mặc định, trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 trả về, nhưng có thể bị ghi đè:
Ghi chú
Sử dụng>>> list[reversed[Color]] [, , ]7 với
>>> Color['BLUE']5 dẫn đến các số nguyên có giá trị ngày càng tăng, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.enum.Flag¶
classenum.intenum¶
Intenum giống như enum, nhưng các thành viên của nó cũng là số nguyên và có thể được sử dụng ở bất cứ đâu mà một số nguyên có thể được sử dụng. Nếu bất kỳ hoạt động số nguyên nào được thực hiện với thành viên Intenum, giá trị kết quả sẽ mất trạng thái liệt kê.[self, value]¶Ghi chú
>>> some_var = Color.RED >>> some_var in Color True5 __iter__[self]:
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> Color['BLUE']6 dẫn đến các số nguyên có giá trị ngày càng tăng, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.
>>> some_var = Color.RED >>> some_var in Color True6 __len__[self]:
Đã thay đổi trong phiên bản 3.11:
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 hiện là
>>> some_var = Color.RED >>> some_var in Color True24 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện tại.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 đã là
>>> some_var = Color.RED >>> some_var in Color True26 vì lý do tương tự.
>>> some_var = Color.RED >>> some_var in Color True7 __bool__[self]:
classenum.strenum¶
>>> some_var = Color.RED >>> some_var in Color True8 Strenum giống như enum, nhưng các thành viên của nó cũng là chuỗi và có thể được sử dụng ở hầu hết các nơi giống như một chuỗi có thể được sử dụng. Kết quả của bất kỳ hoạt động chuỗi nào được thực hiện trên hoặc với thành viên Strenum không phải là một phần của bảng liệt kê.[self, other]¶
Có những vị trí trong stdlib kiểm tra chính xác
>>> Color['BLUE']9 thay vì phân lớp
>>> Color['BLUE']9 [tức là
>>> some_var = Color.RED >>> some_var in Color True29 thay vì
>>> some_var = Color.RED >>> some_var in Color True30] và ở những vị trí đó, bạn sẽ cần sử dụng
>>> some_var = Color.RED >>> some_var in Color True31.
>>> some_var = Color.RED >>> some_var in Color True9 Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> Color['BLUE']8 kết quả trong tên thành viên có hàm lượng thấp hơn làm giá trị.[self, other]¶
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 là
>>> some_var = Color.RED >>> some_var in Color True35 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện có.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 cũng như vậy
>>> some_var = Color.RED >>> some_var in Color True37 vì lý do tương tự.
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']0 Mới trong phiên bản 3.11.[self, other]¶
classenum.flag¶
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']1 __invert__[self]:
Các thành viên cờ hỗ trợ các toán tử bitwise
>>> some_var = Color.RED >>> some_var in Color True38 [và],
>>> some_var = Color.RED >>> some_var in Color True39 [hoặc],
>>> some_var = Color.RED >>> some_var in Color True40 [XOR] và
>>> some_var = Color.RED >>> some_var in Color True41 [đảo ngược]; Kết quả của các nhà khai thác đó là thành viên của việc liệt kê.
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']2 __contains __ [bản thân, giá trị] ¶[]¶
Trả về đúng nếu giá trị tự mình:
__format __ [tự] ¶
Trả về chuỗi được sử dụng cho các cuộc gọi format [] và f-string. Theo mặc định, trả về
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 trả về, nhưng có thể bị ghi đè:
Thay đổi trong phiên bản 3.11: repr [] của các cờ có giá trị bằng không đã thay đổi. Nó bây giờ là::The repr[] of zero-valued flags has changed. It is now::
classenum.intflag¶enum.IntFlag¶Intflag giống như cờ, nhưng các thành viên của nó cũng là số nguyên và có thể được sử dụng ở bất cứ đâu mà một số nguyên có thể được sử dụng.
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']3
Nếu bất kỳ hoạt động số nguyên nào được thực hiện với thành viên INTFLAG, kết quả không phải là Intflag:
Nếu một hoạt động cờ được thực hiện với thành viên Intflag và:
Kết quả là một intflag hợp lệ: một intflag được trả về
Kết quả không phải là một intflag hợp lệ: kết quả phụ thuộc vào cài đặt cờ
Bản repr [] của các cờ có giá trị không tên đã thay đổi. Nó bây giờ là:
Ghi chú
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> list[Color] [, , ]2 dẫn đến các số nguyên là sức mạnh của hai, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.
Đã thay đổi trong phiên bản 3.11: >>> from enum import auto
>>> class PowersOfThree[Enum]:
... @staticmethod
... def _generate_next_value_[name, start, count, last_values]:
... return [count + 1] * 3
... FIRST = auto[]
... SECOND = auto[]
>>> PowersOfThree.SECOND.value
6
4 hiện là >>> some_var = Color.RED
>>> some_var in Color
True
24 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện tại. >>> from enum import auto
>>> class PowersOfThree[Enum]:
... @staticmethod
... def _generate_next_value_[name, start, count, last_values]:
... return [count + 1] * 3
... FIRST = auto[]
... SECOND = auto[]
>>> PowersOfThree.SECOND.value
6
5 đã là >>> some_var = Color.RED
>>> some_var in Color
True
26 vì lý do tương tự.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 is now
>>> some_var = Color.RED >>> some_var in Color True24 to better support the replacement of existing constants use-case.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 was already
>>> some_var = Color.RED >>> some_var in Color True26 for that same reason. classenum.reprenum¶enum.ReprEnum¶
>>> some_var = Color.RED >>> some_var in Color True54 sử dụng
>>> Color.BLUE.name 'BLUE'9 của
>>> Color['BLUE']5, nhưng
>>> Color.BLUE.name 'BLUE'8 của loại dữ liệu hỗn hợp:
>>> some_var = Color.RED >>> some_var in Color True24 cho>>> Color['BLUE']6 và>>> list[Color] [, , ]2 >>> some_var = Color.RED >>> some_var in Color True35 cho>>> Color['BLUE']8
Kế thừa từ
>>> list[Color] [, , ]6 để giữ
>>> some_var = Color.RED >>> some_var in Color True64 của loại dữ liệu hỗn hợp thay vì sử dụng ________ 45-Default
>>> Color.BLUE.name 'BLUE'8.
Mới trong phiên bản 3.11.
classenum.enumcheck¶ enum.EnumCheck¶Enumcheck chứa các tùy chọn được sử dụng bởi
>>> list[reversed[Color]] [, , ]1 Trình trang trí để đảm bảo các ràng buộc khác nhau; Các ràng buộc không thành công dẫn đến
>>> some_var = Color.RED >>> some_var in Color True68. ĐỘC NHẤT¶¶
Đảm bảo rằng mỗi giá trị chỉ có một tên:
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']4 TIẾP DIỄN¶¶
Đảm bảo rằng không có giá trị thiếu giữa thành viên có giá trị thấp nhất và thành viên có giá trị cao nhất:
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']5 Tên_flags¶¶
Đảm bảo rằng bất kỳ nhóm/mặt nạ cờ nào chỉ chứa cờ có tên - hữu ích khi các giá trị được chỉ định thay vì được tạo bởi
>>> some_var = Color.RED >>> some_var in Color True69
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']6
Ghi chú
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> list[Color] [, , ]2 dẫn đến các số nguyên là sức mạnh của hai, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.
Mới trong phiên bản 3.11.
classenum.enumcheck¶enum.FlagBoundary¶Enumcheck chứa các tùy chọn được sử dụng bởi
>>> list[reversed[Color]] [, , ]1 Trình trang trí để đảm bảo các ràng buộc khác nhau; Các ràng buộc không thành công dẫn đến
>>> some_var = Color.RED >>> some_var in Color True68. ĐỘC NHẤT¶¶
Đảm bảo rằng mỗi giá trị chỉ có một tên:
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']7 TIẾP DIỄN¶¶
Đảm bảo rằng không có giá trị thiếu giữa thành viên có giá trị thấp nhất và thành viên có giá trị cao nhất:
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']8 Tên_flags¶¶
Đảm bảo rằng bất kỳ nhóm/mặt nạ cờ nào chỉ chứa cờ có tên - hữu ích khi các giá trị được chỉ định thay vì được tạo bởi
>>> some_var = Color.RED >>> some_var in Color True69
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']9 Liên tục và được đặt tên_flags được thiết kế để hoạt động với các thành viên có giá trị số nguyên.¶
classenum.flagboundary¶
>>> Color.GREEN0
Mới trong phiên bản 3.11.
classenum.enumcheck¶
Enumcheck chứa các tùy chọn được sử dụng bởi
>>> list[reversed[Color]] [, , ]1 Trình trang trí để đảm bảo các ràng buộc khác nhau; Các ràng buộc không thành công dẫn đến
>>> some_var = Color.RED >>> some_var in Color True68.
ĐỘC NHẤT¶
Đảm bảo rằng mỗi giá trị chỉ có một tên:
TIẾP DIỄN¶
Đảm bảo rằng không có giá trị thiếu giữa thành viên có giá trị thấp nhất và thành viên có giá trị cao nhất:
Tên_flags¶
Đảm bảo rằng bất kỳ nhóm/mặt nạ cờ nào chỉ chứa cờ có tên - hữu ích khi các giá trị được chỉ định thay vì được tạo bởi
>>> some_var = Color.RED >>> some_var in Color True
69Liên tục và được đặt tên_flags được thiết kế để hoạt động với các thành viên có giá trị số nguyên.
classenum.flagboundary¶
Ghi chú
Sử dụng
>>> list[reversed[Color]] [, , ]
7 với>>> list[Color] [, , ]
2 dẫn đến các số nguyên là sức mạnh của hai, bắt đầu từ>>> some_var = Color.RED >>> some_var in Color True
19.Đã thay đổi trong phiên bản 3.11:
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 6
4 hiện là>>> some_var = Color.RED >>> some_var in Color True
24 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện tại.>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 6
5 đã là>>> some_var = Color.RED >>> some_var in Color True
26 vì lý do tương tự.
classenum.reprenum¶
>>> some_var = Color.RED >>> some_var in Color True84,
>>> some_var = Color.RED >>> some_var in Color True88,
>>> some_var = Color.RED >>> some_var in Color True89
>>> some_var = Color.RED
>>> some_var in Color
True
54 sử dụng >>> Color.BLUE.name
'BLUE'
9 của >>> Color['BLUE']
5, nhưng >>> Color.BLUE.name
'BLUE'
8 của loại dữ liệu hỗn hợp:
>>> some_var = Color.RED >>> some_var in Color True09
>>> some_var = Color.RED
>>> some_var in Color
True
24 cho >>> Color['BLUE']
6 và >>> list[Color]
[, , ]
2
>>> some_var = Color.RED >>> some_var in Color True35 cho
>>> Color['BLUE']8 enum.auto¶
Kế thừa từ
>>> list[Color] [, , ]6 để giữ
>>> some_var = Color.RED >>> some_var in Color True64 của loại dữ liệu hỗn hợp thay vì sử dụng ________ 45-Default
>>> Color.BLUE.name 'BLUE'8.
Mới trong phiên bản 3.11.
Ghi chú
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> list[Color] [, , ]2 dẫn đến các số nguyên là sức mạnh của hai, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19. Đã thay đổi trong phiên bản 3.11:
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 64 hiện là
>>> some_var = Color.RED >>> some_var in Color True24 để hỗ trợ tốt hơn cho việc thay thế trường hợp sử dụng hằng số hiện tại.
>>> from enum import auto >>> class PowersOfThree[Enum]: ... @staticmethod ... def _generate_next_value_[name, start, count, last_values]: ... return [count + 1] * 3 ... FIRST = auto[] ... SECOND = auto[] >>> PowersOfThree.SECOND.value 65 đã là
>>> some_var = Color.RED >>> some_var in Color True26 vì lý do tương tự.enum.property¶
classenum.reprenum¶
Ghi chú
Sử dụng
>>> list[reversed[Color]] [, , ]7 với
>>> list[Color] [, , ]2 dẫn đến các số nguyên là sức mạnh của hai, bắt đầu từ
>>> some_var = Color.RED >>> some_var in Color True19.
Mới trong phiên bản 3.11.
@enum.unique¶enum.unique¶Một
>>> Color.GREEN4 Người trang trí đặc biệt cho các liệt kê. Nó tìm kiếm một bảng liệt kê từ ____ ____175, thu thập bất kỳ bí danh nào mà nó tìm thấy; Nếu bất kỳ tìm thấy
>>> some_var = Color.RED >>> some_var in Color True68 được nêu ra với các chi tiết:
>>> Color.GREEN1 @enum.verify¶enum.verify¶
Một
>>> Color.GREEN4 Người trang trí đặc biệt cho các liệt kê. Các thành viên từ
>>> list[Color] [, , ]7 được sử dụng để chỉ định những ràng buộc nào nên được kiểm tra trên bảng liệt kê được trang trí.
Mới trong phiên bản 3.11.
@enum.Member¶enum.member¶Một người trang trí để sử dụng trong Enums: Mục tiêu của nó sẽ trở thành thành viên.
Mới trong phiên bản 3.11.
@enum.nonmember¶enum.nonmember¶Một người trang trí để sử dụng trong Enums: Mục tiêu của nó sẽ không trở thành thành viên.
Mới trong phiên bản 3.11.
@enum.global_enum¶enum.global_enum¶Một người trang trí để thay đổi
>>> Color.BLUE.name 'BLUE'8 và
>>> Color.BLUE.name 'BLUE'9 của một enum để hiển thị các thành viên của mình là thuộc về mô -đun thay vì lớp của nó. Chỉ nên được sử dụng khi các thành viên ENUM được xuất sang không gian tên toàn cầu mô -đun [xem
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']08 để biết ví dụ].
Mới trong phiên bản 3.11.
enum.show_flag_values [giá trị] ¶show_flag_values[value]¶Trả về một danh sách tất cả các số nguyên power-of-Two có trong một giá trị cờ.
Mới trong phiên bản 3.11.
Notes¶
>>> Color['BLUE']6,
>>> Color['BLUE']8 và
>>> list[Color] [, , ]2
Ba loại enum này được thiết kế để thay thế thả vào cho các giá trị dựa trên số nguyên và chuỗi hiện có; Như vậy, họ có những hạn chế thêm:
>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']12 sử dụng giá trị chứ không phải tên của thành viên enum >>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']13, vì nó sử dụng>>> dir[Color] ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']12, cũng sẽ sử dụng giá trị của thành viên enum thay vì tên của nóNếu bạn không cần/muốn những hạn chế đó, bạn có thể tạo lớp cơ sở của riêng mình bằng cách tự trộn trong loại
>>> Color['BLUE']7 hoặc>>> Color['BLUE']9:>>> Color.GREEN2Hoặc bạn có thể gán lại
>>> Color.BLUE.name 'BLUE'8 thích hợp, v.v., trong enum của bạn:>>> Color.GREEN3