Hướng dẫn what is enum in python class? - enum trong lớp python là gì?

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 lại để trả lại các thành viên chính tắc (nghĩa là không alias) 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.GREEN
<Color.GREEN: 2>
4 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.GREEN
<Color.GREEN: 2>
4 để 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
    <Color.GREEN: 2>
    
    6 là một liệt kê (hoặc enum)

  • Các thuộc tính

    >>> Color.GREEN
    <Color.GREEN: 2>
    
    7,
    >>> Color.GREEN
    <Color.GREEN: 2>
    
    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
    <Color.GREEN: 2>
    
    7 là
    >>> Color['BLUE']
    <Color.BLUE: 3>
    
    0, giá trị của
    >>> Color['BLUE']
    <Color.BLUE: 3>
    
    1 là
    >>> Color['BLUE']
    <Color.BLUE: 3>
    
    2, v.v.)


Nội dung mô -đun

>>> Color['BLUE']
<Color.BLUE: 3>
3

>>> Color['BLUE']
<Color.BLUE: 3>
4 cho enum và các lớp con của nó.

>>> Color['BLUE']
<Color.BLUE: 3>
5

Lớp cơ sở để tạo các hằng số được liệt kê.

>>> Color['BLUE']
<Color.BLUE: 3>
6

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']
<Color.BLUE: 3>
7. (Ghi chú)

>>> Color['BLUE']
<Color.BLUE: 3>
8

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']
<Color.BLUE: 3>
9. (Ghi chú)

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0

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)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0.

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2

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)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2 của họ.
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2 Thành viên cũng là các lớp con của
>>> Color['BLUE']
<Color.BLUE: 3>
7. (Ghi chú)

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
6

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
7

Một bảng liệt kê với các giá trị

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
8,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
9 và
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
0, để sử dụng với
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
2

Một bảng liệt kê với các giá trị

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
3,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
4,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
5 và
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7

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']
<Color.BLUE: 3>
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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
9

Cho phép các thành viên

>>> Color['BLUE']
<Color.BLUE: 3>
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'
1

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.

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
1

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'
3

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'
5

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í.

>>> Color.BLUE.name
'BLUE'
7

Sử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']
0

Trả 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)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7

Mới trong phiên bản 3.11:

>>> Color['BLUE']
<Color.BLUE: 3>
8,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
7,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
6,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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']
<Color.BLUE: 3>
8,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
7,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
6,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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


Loại dữ liệu¶

classenum.EnumType¶ enum.EnumType

EnumType là metaclass cho các liệt kê enum. 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
6
3,
>>> 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,
>>> 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 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
6
6 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
6
7 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
6
8:

>>> some_var = Color.RED
>>> some_var in Color
True

Ghi chú

Danh pháp

Lớp
>>> Color.GREEN
<Color.GREEN: 2>
6 là một liệt kê (hoặc enum)
(cls)

Các thuộc tính

>>> Color.GREEN
<Color.GREEN: 2>
7,
>>> Color.GREEN
<Color.GREEN: 2>
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.

>>> 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.GREEN
<Color.GREEN: 2>
7 là
>>> Color['BLUE']
<Color.BLUE: 3>
0, giá trị của
>>> Color['BLUE']
<Color.BLUE: 3>
1 là
>>> Color['BLUE']
<Color.BLUE: 3>
2, v.v.)
(cls, name)

Nội dung mô -đun

>>> Color.GREEN
<Color.GREEN: 2>

>>> Color['BLUE']
<Color.BLUE: 3>
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']
<Color.BLUE: 3>

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']
<Color.BLUE: 3>
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']
<Color.BLUE: 3>
9. (Ghi chú)

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]

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)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
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)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2 của họ.
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2 Thành viên cũng là các lớp con của
>>> Color['BLUE']
<Color.BLUE: 3>
7. (Ghi chú)

Một bảng liệt kê với các giá trị
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
8,
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
9 và
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
0, để sử dụng với
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
3,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
4,
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
5 và
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]

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']
<Color.BLUE: 3>
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']
<Color.BLUE: 3>
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.GREEN
<Color.GREEN: 2>
6 là một liệt kê (hoặc enum)

_phớt lờ_¶

>>> some_var = Color.RED
>>> some_var in Color
True
09 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
True
09 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ên

    Tên/giá trị của các thành viên cho enum mới.

    Mô -đun

    Tên của mô -đun enum mới được tạo trong.

    tên gọi

    Vị trí thực tế trong mô -đun nơi có thể tìm thấy enum này.

    loại hình

    Một loại hỗn hợp cho enum mới.

    bắt đầu

    Giá trị số nguyên đầu tiên cho enum (được sử dụng bởi

    >>> list(reversed(Color))
    [<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
    
    7)

ranh giới(self)

Cách xử lý các giá trị ngoài phạm vi từ các hoạt động bit (chỉ

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
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
True
14 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ên

Tên của thành viên được xác định (ví dụ: Red Red).

bắt đầu

Giá 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
6

Mộ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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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
True
0

_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
True
1

__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
True
2

__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
True
3

__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
6
4 trả về, nhưng có thể bị ghi đè:

Ghi chú enum.IntEnum

Sử dụng

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> Color['BLUE']
<Color.BLUE: 3>
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
True
19.

>>> some_var = Color.RED
>>> some_var in Color
True
4

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
6
4 is now
>>> some_var = Color.RED
>>> some_var in Color
True
24 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
6
5 was already
>>> some_var = Color.RED
>>> some_var in Color
True
26 for that same reason.

Sử dụng
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> Color['BLUE']
<Color.BLUE: 3>
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
True
19.
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
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ự.

__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
6
4 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
6
4 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
6
4 trả về, nhưng có thể bị ghi đè:

Ghi chú

Sử dụng
>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> Color['BLUE']
<Color.BLUE: 3>
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
True
19.
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
True
5

__iter__(self):

Sử dụng

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> Color['BLUE']
<Color.BLUE: 3>
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
True
19.

>>> some_var = Color.RED
>>> some_var in Color
True
6

Đã 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ự.Aliases are no longer returned during iteration.

__len__(self):

classenum.strenum¶

>>> some_var = Color.RED
>>> some_var in Color
True
7

__bool__(self):

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ê.

>>> some_var = Color.RED
>>> some_var in Color
True
8

Có những vị trí trong stdlib kiểm tra chính xác
>>> Color['BLUE']
<Color.BLUE: 3>
9 thay vì phân lớp
>>> Color['BLUE']
<Color.BLUE: 3>
9 (tức là
>>> some_var = Color.RED
>>> some_var in Color
True
29 thay vì
>>> some_var = Color.RED
>>> some_var in Color
True
30) và ở những vị trí đó, bạn sẽ cần sử dụng
>>> some_var = Color.RED
>>> some_var in Color
True
31.
(self, other)

Sử dụng

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> Color['BLUE']
<Color.BLUE: 3>
8 kết quả trong tên thành viên có hàm lượng thấp hơn làm giá trị.

>>> some_var = Color.RED
>>> some_var in Color
True
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
4 là
>>> some_var = Color.RED
>>> some_var in Color
True
35 để 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
6
5 cũng như vậy
>>> some_var = Color.RED
>>> some_var in Color
True
37 vì lý do tương tự.
(self, other)

Mới trong phiên bản 3.11.

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
0

classenum.flag¶(self, other)

Các thành viên cờ hỗ trợ các toán tử bitwise

>>> some_var = Color.RED
>>> some_var in Color
True
38 (và),
>>> some_var = Color.RED
>>> some_var in Color
True
39 (hoặc),
>>> some_var = Color.RED
>>> some_var in Color
True
40 (XOR) và
>>> some_var = Color.RED
>>> some_var in Color
True
41 (đả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__']
1

__invert__(self):

__contains __ (bản thân, giá trị) ¶

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
2

Trả về đúng nếu giá trị tự mình:()

Trả về tất cả các thành viên không phải là Alias:

Ghi chú

Sử dụng

>>> list(reversed(Color))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với kết quả
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0 trong 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: 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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
7 với
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
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ự.
>>> 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 is now
>>> some_var = Color.RED
>>> some_var in Color
True
24 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
6
5 was already
>>> some_var = Color.RED
>>> some_var in Color
True
26 for that same reason.

Đảo ngược một

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2 bây giờ trả về một giá trị dương là sự kết hợp của tất cả các cờ không trong cờ đã cho, thay vì giá trị âm. Điều này phù hợp với hành vi
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0 hiện có.

classenum.reprenum¶enum.ReprEnum

>>> some_var = Color.RED
>>> some_var in Color
True
56 sử dụng
>>> Color.BLUE.name
'BLUE'
9 của
>>> Color['BLUE']
<Color.BLUE: 3>
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
    True
    
    24 cho
    >>> Color['BLUE']
    <Color.BLUE: 3>
    
    6 và
    >>> list(Color)
    [<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
    
    2

  • >>> some_var = Color.RED
    >>> some_var in Color
    True
    
    35 cho
    >>> Color['BLUE']
    <Color.BLUE: 3>
    
    8

Kế thừa từ

>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
6 để giữ
>>> some_var = Color.RED
>>> some_var in Color
True
66 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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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
True
70.

ĐỘ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
True
71

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
6

Ghi chú

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.

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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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
True
70.

ĐỘ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
True
71

>>> 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.GREEN
<Color.GREEN: 2>
0

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))
[<Color.BLUE: 3>, <Color.GREEN: 2>, <Color.RED: 1>]
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
True
70.

ĐỘ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
    
    71

  • 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¶

    Ghi chú

    Các điều khiển cờ cách các giá trị ngoài phạm vi được xử lý trong cờ và các lớp con của nó.

    NGHIÊM KHẮC¶

Các giá trị ngoài phạm vi khiến

>>> some_var = Color.RED
>>> some_var in Color
True
70 được nâng lên. Đây là mặc định cho
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
0:
>>> some_var = Color.RED
>>> some_var in Color
True
86,
>>> some_var = Color.RED
>>> some_var in Color
True
90,
>>> some_var = Color.RED
>>> some_var in Color
True
91

TUÂN THỦ¶

>>> some_var = Color.RED
>>> some_var in Color
True
09


Các giá trị ngoài phạm vi có các giá trị không hợp lệ bị xóa, để lại giá trị cờ hợp lệ:

Loại ra enum.auto

Các giá trị ngoài phạm vi mất tư cách thành viên cờ của họ và trở lại

>>> Color['BLUE']
<Color.BLUE: 3>
7. Đây là mặc định cho
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
2:

GIỮ CHO¶

  • Các giá trị ngoài tầm thường được giữ và tư cách thành viên cờ được giữ. Điều này được sử dụng cho một số cờ Stdlib:

  • Được hỗ trợ
    >>> some_var = Color.RED
    >>> some_var in Color
    True
    
    76 tên

    được sử dụng để tạo thành viên enum

    >>> dir(Color)
    ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
    
    04;

  • >>> dir(Color)
    ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
    
    05 sẽ không hoạt động (
    >>> dir(Color)
    ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
    
    06 được sử dụng để tạo thành viên ____207 enum)

>>> some_var = Color.RED
>>> some_var in Color
True
91 có thể được ghi đè để tùy chỉnh các giá trị được sử dụng bởi Auto.

Ghi chú

Trong 3.13,

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
09 mặc định sẽ luôn trả về giá trị thành viên cao nhất được tăng thêm 1 và sẽ thất bại nếu bất kỳ thành viên nào là loại không tương thích.

@enum.property¶enum.property

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.

Ghi chú

Trong 3.13,

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
09 mặc định sẽ luôn trả về giá trị thành viên cao nhất được tăng thêm 1 và sẽ thất bại nếu bất kỳ thành viên nào là loại không tương thích.

@enum.property¶

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.enum.unique

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

>>> Color.GREEN
<Color.GREEN: 2>
1

Mới trong phiên bản 3.11.enum.verify

@enum.unique¶

@enum.property¶

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.enum.member

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

@enum.property¶

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.enum.nonmember

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

@enum.property¶

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.enum.global_enum

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

@enum.property¶

Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.show_flag_values(value)

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

@enum.property¶


Một nhà trang trí tương tự như tài sản tích hợp, nhưng đặc biệt để liệt kê. Nó cho phép các thuộc tính thành viên có cùng tên với chính các thành viên.

Tài sản và thành viên phải được xác định trong các lớp riêng biệt; Ví dụ: các thuộc tính giá trị và tên được xác định trong lớp Enum và các lớp con enum có thể xác định các thành viên có tên

>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
10 và
>>> dir(Color)
['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']
11.

Mới trong phiên bản 3.11.

  • @enum.unique¶

  • Một

    >>> Color.GREEN
    <Color.GREEN: 2>
    
    4 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ừ ____ ____177, 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
    True
    
    70 được nêu ra với các chi tiết:

@enum.verify¶

>>> Color.GREEN
<Color.GREEN: 2>
2

Một

>>> Color.GREEN
<Color.GREEN: 2>
4 Người trang trí đặc biệt cho các liệt kê. Các thành viên từ
>>> list(Color)
[<Color.RED: 1>, <Color.GREEN: 2>, <Color.BLUE: 3>]
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í.

>>> Color.GREEN
<Color.GREEN: 2>
3

Lớp enum trong Python là gì?

Enum là một lớp trong Python để tạo các 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, không đổi. Các thành viên của một bảng liệt kê có thể được so sánh bởi các anmes tượng trưng này và bản thân sự liệt kê có thể được lặp lại.a class in python for creating enumerations, which are a set of symbolic names (members) bound to unique, constant values. The members of an enumeration can be compared by these symbolic anmes, and the enumeration itself can be iterated over.

Mục đích của enum trong Python là gì?

Mô-đun ENUM xác định loại bảng liệt kê có mục đích chung với khả năng lặp và so sánh.Bạn có thể sử dụng loại này để tạo các bộ hằng số được đặt tên mà bạn có thể sử dụng để thay thế các chữ của các loại dữ liệu phổ biến, chẳng hạn như số và chuỗi.to create sets of named constants that you can use to replace literals of common data types, such as numbers and strings.

Lớp enum là gì?

Enum là một "lớp" đặc biệt đại diện cho một nhóm các hằng số (các biến không thể thay đổi, như các biến cuối cùng).Để tạo một enum, hãy sử dụng từ khóa Enum (thay vì lớp hoặc giao diện) và tách các hằng số bằng dấu phẩy.a special "class" that represents a group of constants (unchangeable variables, like final variables). To create an enum , use the enum keyword (instead of class or interface), and separate the constants with a comma.

Việc sử dụng lớp enum là gì?

Loại Enum là một loại dữ liệu đặc biệt cho phép một biến trở thành một tập hợp các hằng số được xác định trước.Biến phải bằng một trong các giá trị đã được xác định trước cho nó.Các ví dụ phổ biến bao gồm các hướng la bàn (giá trị của Bắc, Nam, Đông và Tây) và những ngày trong tuần.enables for a variable to be a set of predefined constants. The variable must be equal to one of the values that have been predefined for it. Common examples include compass directions (values of NORTH, SOUTH, EAST, and WEST) and the days of the week.