Hướng dẫn python iterate over enum members - python lặp qua các thành viên enum

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:47 (UTC/GMT +8 giờ)

Cấu trúc dữ liệu Python: Bài tập-2 với giải pháp

Viết một chương trình Python để lặp lại một lớp enum và hiển thị thành viên cá nhân và giá trị của chúng.

Show

Giải pháp mẫu:-:-

Mã Python:

from enum import Enum
class Country(Enum):
    Afghanistan = 93
    Albania = 355
    Algeria = 213
    Andorra = 376
    Angola = 244
    Antarctica = 672
for data in Country:
    print('{:15} = {}'.format(data.name, data.value))
	

Đầu ra mẫu:

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  

Sơ đồ:

Hướng dẫn python iterate over enum members - python lặp qua các thành viên enum

Trình chỉnh sửa mã Python:

Đóng góp mã và nhận xét của bạn thông qua Disqus.

Trước đây: Viết chương trình Python để tạo một đối tượng Enum và hiển thị tên thành viên và giá trị. Write a Python program to create an Enum object and display a member name and value.
Next: Write a Python program to display all the member name of an enum class ordered by their values.

Mức độ khó của bài tập này là gì?

Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.

Python: Lời khuyên trong ngày

Được sắp xếp có thể điều chỉnh được (có thể sắp xếp theo hàm "so sánh"):

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]


  • Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Giải pháp - Tham gia
  • Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
  • JavaScript Basic - Bài tập, Thực hành, Giải pháp
  • Java Array: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
  • Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C ++: Bài tập, Thực hành, Giải pháp
  • Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
  • Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
  • Công cụ chuyển đổi
  • JavaScript: HTML Mẫu xác thực


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

Mã nguồn: lib/enum.py Lib/enum.py


Một 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. Trong một bảng liệt kê, các thành viên có thể được so sánh bằng danh tính và bản thân việc liệt kê có thể được lặp lại.

Ghi chú

Trường hợp của các thành viên enum

Bởi vì các enum được sử dụng để đại diện cho các hằng số, chúng tôi khuyên bạn nên sử dụng tên Upper_case cho các thành viên enum và sẽ sử dụng kiểu đó trong các ví dụ của chúng tôi.

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

Mã nguồn: lib/enum.py

Một 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. Trong một bảng liệt kê, các thành viên có thể được so sánh bằng danh tính và bản thân việc liệt kê có thể được lặp lại.

Ghi chú

Trường hợp của các thành viên enum

Nội dung mô -đun

Mô -đun này xác định bốn lớp liệt kê có thể được sử dụng để xác định các bộ tên và giá trị duy nhất:
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 và
>>> print(Color.RED.name)
RED
0. Nó cũng xác định một người trang trí,
>>> print(Color.RED.name)
RED
1 và một người trợ giúp,
>>> print(Color.RED.name)
RED
2.

Lớp ________ 73 ________ 74¶

Lớp cơ sở để tạo các hằng số được liệt kê. Xem phần API chức năng cho một cú pháp xây dựng thay thế.

Lớp ________ 73 ________ 76¶

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
>>> print(Color.RED.name)
RED
7.()

Lớp ________ 73 ________ 79¶

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
>>> print(Color.RED.name)
RED
0 của họ.
>>> print(Color.RED.name)
RED
0 Thành viên cũng là các lớp con của
>>> print(Color.RED.name)
RED
7.

Lớp ________ 73 ________ 84¶

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

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 của chúng.
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9,
>>> print(Color.RED.name)
RED
0,
>>> print(Color.RED.name)
RED
2

________ 73 ________ 87 ()

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.

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...

Ghi chú

Trường hợp của các thành viên enum

Nội dung mô -đun

Ghi chú

Trường hợp của các thành viên enum

  • Nội dung mô -đun

  • Mô -đun này xác định bốn lớp liệt kê có thể được sử dụng để xác định các bộ tên và giá trị duy nhất:

    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7,
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    8,
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    9 và
    >>> print(Color.RED.name)
    RED
    
    0. Nó cũng xác định một người trang trí,
    >>> print(Color.RED.name)
    RED
    
    1 và một người trợ giúp,
    >>> print(Color.RED.name)
    RED
    
    2.

  • Lớp ________ 73 ________ 74¶

Lớp cơ sở để tạo các hằng số được liệt kê. Xem phần API chức năng cho một cú pháp xây dựng thay thế.

Lớp ________ 73 ________ 76¶

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

>>> print(Color.RED.name)
RED
7.

>>> print(repr(Color.RED))

Lớp ________ 73 ________ 79¶

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>

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

>>> print(Color.RED.name)
RED
0 của họ.
>>> print(Color.RED.name)
RED
0 Thành viên cũng là các lớp con của
>>> print(Color.RED.name)
RED
7.

>>> print(Color.RED.name)
RED

Lớp ________ 73 ________ 84¶

>>> class Shake(Enum):
...     VANILLA = 7
...     CHOCOLATE = 4
...     COOKIES = 9
...     MINT = 3
...
>>> for shake in Shake:
...     print(shake)
...
Shake.VANILLA
Shake.CHOCOLATE
Shake.COOKIES
Shake.MINT

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

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 của chúng.

>>> apples = {}
>>> apples[Color.RED] = 'red delicious'
>>> apples[Color.GREEN] = 'granny smith'
>>> apples == {Color.RED: 'red delicious', Color.GREEN: 'granny smith'}
True

________ 73 ________ 87 ()

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.

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
0

Lớp ________ 73 ________ 89¶

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
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. Theo mặc định, giá trị ban đầu bắt đầu từ 1.

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
2

Mới trong phiên bản 3.6: >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 9, >>> print(Color.RED.name) RED 0, >>> print(Color.RED.name) RED 2

Tạo một Enum¶

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
3

Các liệt kê được tạo bằng cú pháp

>>> apples = {}
>>> apples[Color.RED] = 'red delicious'
>>> apples[Color.GREEN] = 'granny smith'
>>> apples == {Color.RED: 'red delicious', Color.GREEN: 'granny smith'}
True
3, giúp chúng dễ đọc và viết. Một phương pháp tạo thay thế được mô tả trong API chức năng. Để xác định một liệt kê, lớp con
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 như sau:

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
4

Ghi chú

Trường hợp của các thành viên enum

Nội dung mô -đun

Mô -đun này xác định bốn lớp liệt kê có thể được sử dụng để xác định các bộ tên và giá trị duy nhất:

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 và
>>> print(Color.RED.name)
RED
0. Nó cũng xác định một người trang trí,
>>> print(Color.RED.name)
RED
1 và một người trợ giúp,
>>> print(Color.RED.name)
RED
2.

Lớp ________ 73 ________ 74¶

Lớp cơ sở để tạo các hằng số được liệt kê. Xem phần API chức năng cho một cú pháp xây dựng thay thế.

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
5

Sử dụng các giá trị tự động

Nếu giá trị chính xác là không quan trọng, bạn có thể sử dụng

>>> print(Color.RED.name)
RED
2:

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
6

Các giá trị được chọn bởi

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
18, có thể bị ghi đè:

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
7

Ghi chú

Mục tiêu của phương thức

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
18 mặc định là cung cấp trình tự
>>> print(Color.RED.name)
RED
7 tiếp theo với trình tự
>>> print(Color.RED.name)
RED
7 cuối cùng được cung cấp, nhưng cách nó thực hiện đây là một chi tiết triển khai và có thể thay đổi.

Ghi chú

Mục tiêu của phương thức

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
18 mặc định là cung cấp trình tự
>>> print(Color.RED.name)
RED
7 tiếp theo với trình tự
>>> print(Color.RED.name)
RED
7 cuối cùng được cung cấp, nhưng cách nó thực hiện đây là một chi tiết triển khai và có thể thay đổi.

Phương pháp Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 18 phải được xác định trước bất kỳ thành viên nào.

Sự lặp lại

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
8

Lặp lại các thành viên của một enum không cung cấp các bí danh:

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
9

Thuộc tính đặc biệt

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
15 là một bản đồ tên chỉ được đọc cho các thành viên. Nó bao gồm tất cả các tên được xác định trong bảng liệt kê, bao gồm các bí danh:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
0

Thuộc tính Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 15 có thể được sử dụng để truy cập chương trình chi tiết cho các thành viên liệt kê. Ví dụ: tìm tất cả các bí danh:

So sánh lor

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
1

Các thành viên liệt kê được so sánh bằng danh tính:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
2

So sánh được đặt hàng giữa các giá trị liệt kê không được hỗ trợ. Các thành viên enum không phải là số nguyên (nhưng xem intenum bên dưới):

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
3

So sánh bình đẳng được xác định mặc dù:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
4

So sánh với các giá trị không kích thích sẽ luôn so sánh không bằng nhau (một lần nữa, >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 8 được thiết kế rõ ràng để hoạt động khác nhau, xem bên dưới):

Các thành viên được phép và các thuộc tính của bảng liệt kê Jo

Các ví dụ trên sử dụng số nguyên cho các giá trị liệt kê. Sử dụng số nguyên ngắn và tiện dụng (và được cung cấp theo mặc định bởi API chức năng), nhưng không được thực thi nghiêm ngặt. Trong phần lớn các trường hợp sử dụng, người ta không quan tâm đến giá trị thực tế của một liệt kê là gì. Nhưng nếu giá trị là quan trọng, bảng liệt kê có thể có các giá trị tùy ý.

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
5

Then:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
6

Các bảng liệt kê là các lớp Python, và có thể có các phương pháp và phương pháp đặc biệt như bình thường. Nếu chúng ta có sự liệt kê này:

Các quy tắc cho những gì được cho phép như sau: các tên bắt đầu và kết thúc với một dấu gạch dưới được bảo lưu bởi enum và không thể được sử dụng; Tất cả các thuộc tính khác được xác định trong một bảng liệt kê sẽ trở thành thành viên của liệt kê này, ngoại trừ các phương pháp đặc biệt (

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
26,
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
27, v.v.), các mô tả (Phương pháp cũng là mô tả) và tên biến được liệt kê trong
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
28.

Lưu ý: Nếu liệt kê của bạn xác định Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 29 và/hoặc Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 30 thì bất kỳ giá trị nào được trao cho thành viên Enum sẽ được chuyển vào các phương thức đó. Xem hành tinh để biết một ví dụ.

Các lớp con enum bị hạn chế

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
7

Một lớp

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 mới phải có một lớp enum cơ sở, tối đa một loại dữ liệu cụ thể và nhiều lớp mixin dựa trên ____ 132 khi cần thiết. Thứ tự của các lớp cơ sở này là:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
8

Ngoài ra, phân lớp một liệt kê chỉ được phép nếu việc liệt kê không xác định bất kỳ thành viên nào. Vì vậy, điều này bị cấm:

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
9

Nhưng điều này được cho phép:

Cho phép phân lớp các enum xác định các thành viên sẽ dẫn đến vi phạm một số bất biến quan trọng của các loại và trường hợp. Mặt khác, thật hợp lý khi cho phép chia sẻ một số hành vi phổ biến giữa một nhóm các liệt kê. (Xem đặt hàng cho một ví dụ.)

Nước ngâm

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
0

Tái lập có thể được ngâm và không được giải thích:

Ghi chú

Mục tiêu của phương thức

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
18 mặc định là cung cấp trình tự
>>> print(Color.RED.name)
RED
7 tiếp theo với trình tự
>>> print(Color.RED.name)
RED
7 cuối cùng được cung cấp, nhưng cách nó thực hiện đây là một chi tiết triển khai và có thể thay đổi.

Phương pháp

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
18 phải được xác định trước bất kỳ thành viên nào.

Sự lặp lại

Lặp lại các thành viên của một enum không cung cấp các bí danh:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
1

Thuộc tính đặc biệt

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
15 là một bản đồ tên chỉ được đọc cho các thành viên. Nó bao gồm tất cả các tên được xác định trong bảng liệt kê, bao gồm các bí danh:

Thuộc tính

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
15 có thể được sử dụng để truy cập chương trình chi tiết cho các thành viên liệt kê. Ví dụ: tìm tất cả các bí danh:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
2

So sánh lor

Các thành viên liệt kê được so sánh bằng danh tính:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
3

Cảnh báo

Nếu

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
45 không được cung cấp và enum không thể xác định nó là gì, các thành viên enum mới sẽ không thể không được biết đến; Để giữ lỗi gần hơn với nguồn, Pickling sẽ bị tắt.

Trong một số trường hợp, giao thức Pickle 4 mới, dựa vào

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
46 được đặt đến vị trí nơi Pickle sẽ có thể tìm thấy lớp. Ví dụ: nếu lớp học được cung cấp trong lớp một ngày nào đó trong phạm vi toàn cầu:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
4

Chữ ký hoàn chỉnh là:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
5

giá trị

Những gì lớp enum mới sẽ ghi lại như tên của nó.

Tên

Các thành viên enum. Đây có thể là một chuỗi khoảng trắng hoặc dấu phẩy (giá trị sẽ bắt đầu ở mức 1 trừ khi có quy định khác):

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
6

hoặc một người lặp của tên:

hoặc một trình lặp của các cặp (tên, giá trị):

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
7

hoặc một bản đồ:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
8

Mô -đun

Tên của mô -đun nơi có thể tìm thấy lớp Enum mới.

tên gọi

nơi có thể tìm thấy lớp enum mới.

loại hình

Nhập để trộn vào lớp Enum mới.

bắt đầu

Số để bắt đầu đếm tại nếu chỉ có tên được truyền vào.

Thay đổi trong phiên bản 3.5: Tham số bắt đầu đã được thêm vào.The start parameter was added.

Có nguồn gốc từ

Intenum¶

Biến thể đầu tiên của

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 được cung cấp cũng là một lớp con của
>>> print(Color.RED.name)
RED
7. Các thành viên của
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8 có thể được so sánh với các số nguyên; Bằng cách mở rộng, các loại thuốc của các loại khác nhau cũng có thể được so sánh với nhau:

>>> from enum import Enum
>>> class Color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
...
9

Tuy nhiên, họ vẫn có thể được so sánh với các liệt kê

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 tiêu chuẩn:

>>> print(Color.RED)
Color.RED
0

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8 Các giá trị hoạt động như số nguyên theo những cách khác mà bạn mong đợi:

>>> print(Color.RED)
Color.RED
1

Intflag¶

Biến thể tiếp theo của

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 được cung cấp,
>>> print(Color.RED.name)
RED
0, cũng dựa trên
>>> print(Color.RED.name)
RED
7. Sự khác biệt là
>>> print(Color.RED.name)
RED
0 Các thành viên có thể được kết hợp bằng cách sử dụng các toán tử bitwise (&, |, ^, ~) và kết quả vẫn là thành viên
>>> print(Color.RED.name)
RED
0. Tuy nhiên, như tên gọi,
>>> print(Color.RED.name)
RED
0 Các thành viên cũng phân lớp
>>> print(Color.RED.name)
RED
7 và có thể được sử dụng bất cứ nơi nào sử dụng
>>> print(Color.RED.name)
RED
7. Bất kỳ hoạt động nào trên thành viên
>>> print(Color.RED.name)
RED
0 bên cạnh các hoạt động bit khôn ngoan sẽ mất tư cách thành viên
>>> print(Color.RED.name)
RED
0.

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

Mẫu

>>> print(Color.RED.name)
RED
0 Lớp:

>>> print(Color.RED)
Color.RED
2

Cũng có thể đặt tên cho các kết hợp:

>>> print(Color.RED)
Color.RED
3

Một sự khác biệt quan trọng khác giữa

>>> print(Color.RED.name)
RED
0 và
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 là nếu không có cờ được đặt (giá trị là 0), đánh giá boolean của nó là
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
43:

>>> print(Color.RED)
Color.RED
4

Bởi vì

>>> print(Color.RED.name)
RED
0 Các thành viên cũng là các lớp con của
>>> print(Color.RED.name)
RED
7 nên họ có thể được kết hợp với họ:

>>> print(Color.RED)
Color.RED
5

Lá cờ¶

Biến thể cuối cùng là

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9. Giống như
>>> print(Color.RED.name)
RED
0,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 Thành viên có thể được kết hợp bằng cách sử dụng các toán tử bitwise (&, |, ^, ~). Không giống như
>>> print(Color.RED.name)
RED
0, chúng không thể được kết hợp với, cũng như không so sánh với bất kỳ liệt kê
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 nào khác, cũng không phải
>>> print(Color.RED.name)
RED
7. Mặc dù có thể chỉ định các giá trị trực tiếp nhưng nó được khuyến nghị sử dụng
>>> print(Color.RED.name)
RED
2 làm giá trị và để
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 chọn một giá trị thích hợp.

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

Mẫu

>>> print(Color.RED.name)
RED
0 Lớp:

>>> print(Color.RED)
Color.RED
6

Cũng có thể đặt tên cho các kết hợp:

>>> print(Color.RED)
Color.RED
7

Một sự khác biệt quan trọng khác giữa

>>> print(Color.RED.name)
RED
0 và
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 là nếu không có cờ được đặt (giá trị là 0), đánh giá boolean của nó là
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
43:

>>> print(Color.RED)
Color.RED
8

Bởi vì

>>> print(Color.RED.name)
RED
0 Các thành viên cũng là các lớp con của
>>> print(Color.RED.name)
RED
7 nên họ có thể được kết hợp với họ:

Lá cờ¶

Biến thể cuối cùng là >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 9. Giống như >>> print(Color.RED.name) RED 0, >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 9 Thành viên có thể được kết hợp bằng cách sử dụng các toán tử bitwise (&, |, ^, ~). Không giống như >>> print(Color.RED.name) RED 0, chúng không thể được kết hợp với, cũng như không so sánh với bất kỳ liệt kê >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 9 nào khác, cũng không phải >>> print(Color.RED.name) RED 7. Mặc dù có thể chỉ định các giá trị trực tiếp nhưng nó được khuyến nghị sử dụng >>> print(Color.RED.name) RED 2 làm giá trị và để >>> type(Color.RED) >>> isinstance(Color.GREEN, Color) True >>> 9 chọn một giá trị thích hợp.

Giống như

>>> print(Color.RED.name)
RED
0, nếu sự kết hợp của
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 Thành viên dẫn đến không có cờ nào được thiết lập, thì đánh giá Boolean là
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
43:

>>> print(Color.RED)
Color.RED
9

Cờ riêng lẻ nên có các giá trị là sức mạnh của hai (1, 2, 4, 8, phạm), trong khi các kết hợp cờ giành được:

Đặt tên cho điều kiện của No No Flags Set không thay đổi giá trị boolean của nó:

  1. Ghi chú

  2. Đối với phần lớn mã mới,

    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7 và
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    9 được khuyến nghị mạnh mẽ, vì
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    8 và
    >>> print(Color.RED.name)
    RED
    
    0 phá vỡ một số lời hứa ngữ nghĩa về một liệt kê (bằng cách so sánh với các số nguyên, và do đó bằng cách chuyển tiếp đến các bảng điều khiển không liên quan khác).
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    8 và
    >>> print(Color.RED.name)
    RED
    
    0 chỉ nên được sử dụng trong trường hợp
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7 và
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    9 sẽ không làm; Ví dụ, khi các hằng số nguyên được thay thế bằng các liệt kê hoặc cho khả năng tương tác với các hệ thống khác.

  3. Khác¶

  4. Mặc dù

    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    8 là một phần của mô -đun
    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    88, nhưng sẽ rất đơn giản để thực hiện độc lập:

  5. Các chuỗi chữ được định dạng,

    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    01 và
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    02 sẽ sử dụng loại hỗn hợp loại ____ ____203 trừ khi
    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    26 hoặc
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    03 được ghi đè trong lớp con, trong trường hợp đó, các phương thức được ghi đè hoặc các phương thức
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7 sẽ được sử dụng. Sử dụng mã định dạng! S và!,
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    01, and
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    02 will use the mixed-in type’s
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    03 unless
    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    26 or
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    03 is overridden in the subclass, in which case the overridden methods or
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7 methods will be used. Use the !s and !r format codes to force usage of the
    >>> type(Color.RED)
    
    >>> isinstance(Color.GREEN, Color)
    True
    >>>
    
    7 class’s
    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    26 and
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    00 methods.

Khi nào nên sử dụng Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 29 so với ________ 130¶

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 phải được sử dụng bất cứ khi nào bạn muốn tùy chỉnh giá trị thực của thành viên
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7. Bất kỳ sửa đổi nào khác có thể đi trong
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 hoặc
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
30, với
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
30 được ưu tiên.

Ví dụ: nếu bạn muốn chuyển một số mục cho hàm tạo, nhưng chỉ muốn một trong số chúng là giá trị:

>>> print(repr(Color.RED))

0

Ví dụ thú vị

Trong khi

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7,
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8,
>>> print(Color.RED.name)
RED
0 và
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
9 dự kiến ​​sẽ bao gồm phần lớn các trường hợp sử dụng, họ không thể bao gồm tất cả. Dưới đây là các công thức nấu ăn cho một số loại bảng liệt kê khác nhau có thể được sử dụng trực tiếp hoặc làm ví dụ để tạo một bản thân riêng.

Bỏ qua các giá trị

Trong nhiều trường hợp sử dụng, người ta không quan tâm đến giá trị thực tế của một bảng liệt kê là gì. Có một số cách để xác định loại liệt kê đơn giản này:

  • Sử dụng các trường hợp

    >>> print(Color.RED.name)
    RED
    
    2 cho giá trị

  • Sử dụng các trường hợp

    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    32 làm giá trị

  • Sử dụng chuỗi mô tả làm giá trị

  • Sử dụng một tuple làm giá trị và tùy chỉnh

    Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    29 để thay thế bộ tuple bằng giá trị

Sử dụng bất kỳ phương pháp nào trong số này biểu thị cho người dùng rằng các giá trị này không quan trọng và cũng cho phép người ta thêm, xóa hoặc sắp xếp lại các thành viên mà không phải đánh số lại các thành viên còn lại.

Bất cứ phương pháp nào bạn chọn, bạn nên cung cấp một

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
25 cũng che giấu giá trị (không quan trọng):

>>> print(repr(Color.RED))

1

Sử dụng ________ 72¶

Sử dụng

>>> print(Color.RED.name)
RED
2 sẽ giống như:

>>> print(repr(Color.RED))

2

Sử dụng ________ 132¶

Sử dụng

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
32 sẽ giống như:

>>> print(repr(Color.RED))

3

Sử dụng chuỗi mô tả

Sử dụng một chuỗi như giá trị sẽ trông như thế nào:

>>> print(repr(Color.RED))

4

Sử dụng tùy chỉnh ____ 129¶

Sử dụng tự động đánh số

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 sẽ giống như:

>>> print(repr(Color.RED))

5

Để tạo mục đích tổng quát hơn

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
32, hãy thêm
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
33 vào chữ ký:

>>> print(repr(Color.RED))

6

Sau đó, khi bạn kế thừa từ

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
32, bạn có thể viết
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
35 của riêng mình để xử lý bất kỳ đối số bổ sung nào:

>>> print(repr(Color.RED))

7

Ghi chú

Phương pháp

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29, nếu được xác định, được sử dụng trong quá trình tạo ra các thành viên ENUM; Sau đó, nó được thay thế bằng Enum từ
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 được sử dụng sau khi tạo lớp để tra cứu các thành viên hiện tại.

Đặt hàng

Một liệt kê được đặt hàng không dựa trên

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8 và do đó duy trì các bất biến
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 bình thường (chẳng hạn như không thể so sánh với các bảng liệt kê khác):

>>> print(repr(Color.RED))

8

Trùng lặpfreeenum¶

Bị lỗi nếu tìm thấy tên thành viên trùng lặp thay vì tạo bí danh:

>>> print(repr(Color.RED))

9

Ghi chú

Phương pháp

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29, nếu được xác định, được sử dụng trong quá trình tạo ra các thành viên ENUM; Sau đó, nó được thay thế bằng Enum từ
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 được sử dụng sau khi tạo lớp để tra cứu các thành viên hiện tại.

Đặt hàng

Một liệt kê được đặt hàng không dựa trên

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
8 và do đó duy trì các bất biến
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 bình thường (chẳng hạn như không thể so sánh với các bảng liệt kê khác):

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
0

Trùng lặpfreeenum¶

Bị lỗi nếu tìm thấy tên thành viên trùng lặp thay vì tạo bí danh:

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
1

Đây là một ví dụ hữu ích để phân lớp enum để thêm hoặc thay đổi các hành vi khác cũng như không cho phép bí danh. Nếu sự thay đổi mong muốn duy nhất là không cho phép bí danh, người trang trí >>> print(Color.RED.name) RED 1 có thể được sử dụng thay thế.

Hành tinh¶

Nếu Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 29 hoặc Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 30 được xác định, giá trị của thành viên ENUM sẽ được chuyển sang các phương pháp đó:

Thời gian

Một ví dụ để hiển thị thuộc tính Afghanistan = 93 Albania = 355 Algeria = 213 Andorra = 376 Angola = 244 Antarctica = 672 28 đang sử dụng:

Enums khác nhau như thế nào? ¶

Enums có một metaclass tùy chỉnh ảnh hưởng đến nhiều khía cạnh của cả hai lớp Enum có nguồn gốc và các trường hợp (thành viên) của chúng.

Các lớp học Enum

Metaclass

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
44 chịu trách nhiệm cung cấp
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
45,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
46,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
47 và các phương pháp khác cho phép người ta làm những việc có lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 thất bại trên một lớp điển hình, chẳng hạn như danh sách (màu) hoặc some_enum_var có màu.
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
44 chịu trách nhiệm đảm bảo rằng nhiều phương pháp khác trong lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 cuối cùng là chính xác (chẳng hạn như
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
52,
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
26 và
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
00).

Các thành viên enum (còn gọi là các trường hợp) ¶

Điều thú vị nhất về các thành viên Enum là họ là những người độc thân.
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
44 tạo ra tất cả trong khi nó đang tạo ra lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7, và sau đó đặt một
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
29 tùy chỉnh để đảm bảo rằng không có trường mới nào được khởi tạo bằng cách chỉ trả lại các trường hợp thành viên hiện có.

  • Tốt hơn điểm¶

  • Được hỗ trợ

    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    58 Tên

  • Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    15 là một bản đồ chỉ được đặt hàng của ____ ____ 260: ________ 261 các mục. Nó chỉ có sẵn trên lớp.

  • Afghanistan     = 93                                                                                          
    Albania         = 355                                                                                         
    Algeria         = 213                                                                                         
    Andorra         = 376                                                                                         
    Angola          = 244                                                                                         
    Antarctica      = 672  
    
    29, nếu được chỉ định, phải tạo và trả lại các thành viên Enum; Đó cũng là một ý tưởng rất tốt để thiết lập thành viên
    >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    63 một cách thích hợp. Một khi tất cả các thành viên được tạo ra, nó không còn được sử dụng.

  • >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    72 - Được sử dụng trong mã Python 2/3 để đảm bảo thứ tự thành viên nhất quán (thuộc tính lớp, bị xóa trong quá trình tạo lớp)

  • >>> a = [1, 2, -3]
    >>> sorted(a)
    [-3, 1, 2]
    
    >>> sorted(a,key=abs)
    [1, 2, -3]
    
    73 - Được API chức năng sử dụng và bằng
    >>> print(Color.RED.name)
    RED
    
    2 để có được giá trị phù hợp cho một thành viên enum; có thể bị ghi đè

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

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
68,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
73
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
68,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72,
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
73

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

Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
28
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
28

Để giúp giữ mã Python 2 / Python 3 đồng bộ hóa một thuộc tính

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72 có thể được cung cấp. Nó sẽ được kiểm tra theo thứ tự thực tế của bảng liệt kê và gây ra lỗi nếu hai người không khớp:

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
2

Ghi chú

Trong mã Python 2, thuộc tính

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72 là cần thiết vì thứ tự định nghĩa bị mất trước khi có thể ghi lại.

_Private__names¶

Tên riêng sẽ là các thuộc tính bình thường trong Python 3.11 thay vì lỗi hoặc thành viên (tùy thuộc vào việc tên kết thúc bằng dấu gạch dưới). Sử dụng các tên này trong 3.10 sẽ phát hành

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
81. will be normal attributes in Python 3.11 instead of either an error or a member (depending on if the name ends with an underscore). Using these names in 3.10 will issue a
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
81.

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 Kiểu thành viên

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 Thành viên là trường hợp của lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 của họ và thường được truy cập là
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
85. Trong một số trường hợp nhất định, chúng cũng có thể được truy cập là
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
86, nhưng bạn không bao giờ nên làm điều này vì tra cứu đó có thể thất bại hoặc tệ hơn, trả lại một cái gì đó ngoài thành viên
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 mà bạn đang tìm ):

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
3

Ghi chú

Trong mã Python 2, thuộc tính

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72 là cần thiết vì thứ tự định nghĩa bị mất trước khi có thể ghi lại.

_Private__names¶

Tên riêng sẽ là các thuộc tính bình thường trong Python 3.11 thay vì lỗi hoặc thành viên (tùy thuộc vào việc tên kết thúc bằng dấu gạch dưới). Sử dụng các tên này trong 3.10 sẽ phát hành
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
81.

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 Kiểu thành viên

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
4

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 Thành viên là trường hợp của lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 của họ và thường được truy cập là
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
85. Trong một số trường hợp nhất định, chúng cũng có thể được truy cập là
>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
86, nhưng bạn không bao giờ nên làm điều này vì tra cứu đó có thể thất bại hoặc tệ hơn, trả lại một cái gì đó ngoài thành viên
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 mà bạn đang tìm ):

Hành vi này không được chấp nhận và sẽ bị xóa trong 3.11.

Thay đổi trong phiên bản 3.5.

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
5

Giá trị boolean của các lớp
>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 và thành viên

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
7 Các thành viên được trộn lẫn với các loại không phải là không phải là
>>> print(Color.RED.name)
RED
7,
>>> apples = {}
>>> apples[Color.RED] = 'red delicious'
>>> apples[Color.GREEN] = 'granny smith'
>>> apples == {Color.RED: 'red delicious', Color.GREEN: 'granny smith'}
True
6, v.v.) được đánh giá theo các quy tắc loại hỗn hợp; Mặt khác, tất cả các thành viên đánh giá là
Afghanistan     = 93                                                                                          
Albania         = 355                                                                                         
Algeria         = 213                                                                                         
Andorra         = 376                                                                                         
Angola          = 244                                                                                         
Antarctica      = 672  
44. Để làm cho đánh giá boolean của riêng bạn phụ thuộc vào giá trị thành viên, cộng thêm giá trị sau vào lớp của bạn:

>>> type(Color.RED)

>>> isinstance(Color.GREEN, Color)
True
>>>
6

Ghi chú

Trong mã Python 2, thuộc tính

>>> a = [1, 2, -3]
>>> sorted(a)
[-3, 1, 2]

>>> sorted(a,key=abs)
[1, 2, -3]
72 là cần thiết vì thứ tự định nghĩa bị mất trước khi có thể ghi lại.

Enum có phải là python không?

Ví dụ 3: liệt kê là có thể sử dụng được.Chúng có thể được lặp lại bằng cách sử dụng các vòng.Trong ví dụ này, chúng tôi sẽ sử dụng cho Loop để in tất cả các thành viên của lớp Enum.Enumerations are iterable. They can be iterated using loops. In this example, we will use for loop to print all the members of the Enum class.

Làm thế nào để bạn truy cập enum trong python?

Chúng tôi có thể truy cập các thành viên Enum bằng cách sử dụng tên hoặc giá trị của các mục thành viên.Trong ví dụ dưới đây, trước tiên chúng tôi truy cập giá trị theo tên nơi chúng tôi sử dụng tên của ENU làm chỉ mục.

Enum có thể có nhiều giá trị python không?

Enums không thể có nhiều giá trị cho mỗi tên..

Có nên Enums là Python viết hoa?

Bởi vì các enum được sử dụng để đại diện cho các hằng số, chúng tôi khuyên bạn nên sử dụng tên Upper_case cho các thành viên enum và sẽ sử dụng kiểu đó trong các ví dụ của chúng tôi.we recommend using UPPER_CASE names for enum members, and will be using that style in our examples.