Có phải enums Python có thể lặp lại không?

Theo định nghĩa, một phép liệt kê là một tập hợp các thành viên có các giá trị hằng số duy nhất được liên kết. Phép liệt kê thường được gọi là enum

Python cung cấp cho bạn mô-đun

print[type[Color.RED]]

Code language: Python [python]
4 chứa loại

print[type[Color.RED]]

Code language: Python [python]
5 để xác định kiểu liệt kê mới. Và bạn xác định một kiểu liệt kê mới bằng cách phân lớp lớp

print[type[Color.RED]]

Code language: Python [python]
5

Ví dụ sau đây cho thấy cách tạo một kiểu liệt kê có tên là

print[type[Color.RED]]

Code language: Python [python]
7

from enum import Enum class Color[Enum]: RED = 1 GREEN = 2 BLUE = 3

Code language: Python [python]

Làm thế nào nó hoạt động

Đầu tiên, nhập loại

print[type[Color.RED]]

Code language: Python [python]
5 từ mô-đun

print[type[Color.RED]]

Code language: Python [python]
4

from enum import Enum

Code language: Python [python]

Thứ hai, định nghĩa lớp

print[type[Color.RED]]

Code language: Python [python]
7 kế thừa từ loại

print[type[Color.RED]]

Code language: Python [python]
5

print[type[Color.RED]]

Code language: Python [python]
0

Thứ ba, xác định các thành viên của điều tra

print[type[Color.RED]]

Code language: Python [python]
7

print[type[Color.RED]]

Code language: Python [python]
2

Lưu ý rằng các thành viên của bảng liệt kê là hằng số. Do đó, tên của họ được viết hoa theo quy ước

Trong ví dụ này,

print[type[Color.RED]]

Code language: Python [python]
7 là một phép liệt kê.

print[type[Color.RED]]

Code language: Python [python]
44,

print[type[Color.RED]]

Code language: Python [python]
45 và

print[type[Color.RED]]

Code language: Python [python]
46 là thành viên của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7. Chúng có các giá trị liên quan 1, 2 và 3

Loại thành viên là liệt kê mà nó thuộc về

Sau đây minh họa rằng loại

print[type[Color.RED]]

Code language: Python [python]
48 là kiểu liệt kê

print[type[Color.RED]]

Code language: Python [python]
7

print[type[Color.RED]]

Code language: Python [python]

đầu ra

print[type[Color.RED]]

Code language: Python [python]
4

print[type[Color.RED]]

Code language: Python [python]
48 cũng là một thể hiện của phép liệt kê

print[type[Color.RED]]

Code language: Python [python]
7

print[type[Color.RED]]

Code language: Python [python]
4

đầu ra

print[type[Color.RED]]

Code language: Python [python]
5

Và nó có các thuộc tính tên và giá trị

print[type[Color.RED]]

Code language: Python [python]
6

đầu ra

print[type[Color.RED]]

Code language: Python [python]
7

Tư cách thành viên và bình đẳng

Để kiểm tra xem một thành viên có trong một kiểu liệt kê hay không, bạn sử dụng toán tử

print[type[Color.RED]]

Code language: Python [python]
42. Ví dụ

from enum import Enum

Code language: Python [python]
0

đầu ra

from enum import Enum

Code language: Python [python]
1

Để so sánh hai thành viên, bạn có thể sử dụng toán tử

print[type[Color.RED]]

Code language: Python [python]
43 hoặc

print[type[Color.RED]]

Code language: Python [python]
44. Ví dụ

from enum import Enum

Code language: Python [python]
2

đầu ra

from enum import Enum

Code language: Python [python]
3

Lưu ý rằng một thành viên và giá trị liên kết của nó không bằng nhau. Ví dụ sau trả về

print[type[Color.RED]]

Code language: Python [python]
45

from enum import Enum

Code language: Python [python]
4

đầu ra

from enum import Enum

Code language: Python [python]
5

Thành viên liệt kê có thể băm

Thành viên liệt kê luôn có thể băm. Điều đó có nghĩa là bạn có thể sử dụng các phần tử liệt kê làm khóa trong từ điển hoặc làm phần tử của Tập hợp

Ví dụ sau sử dụng các thành viên của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 trong từ điển

from enum import Enum

Code language: Python [python]
6

Truy cập một thành viên liệt kê theo tên và giá trị

Cách điển hình để truy cập một phần tử liệt kê là sử dụng ký hiệu dấu chấm [. ] cú pháp như bạn đã thấy cho đến nay

from enum import Enum

Code language: Python [python]
7

Bởi vì

print[type[Color.RED]]

Code language: Python [python]
5 triển khai phương thức

print[type[Color.RED]]

Code language: Python [python]
48, bạn cũng có thể sử dụng cú pháp dấu ngoặc vuông

print[type[Color.RED]]

Code language: Python [python]
49 để lấy thành viên theo tên của nó

Ví dụ: phần sau sử dụng cú pháp dấu ngoặc vuông

print[type[Color.RED]]

Code language: Python [python]
49 để lấy thành viên

print[type[Color.RED]]

Code language: Python [python]
44 của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 theo tên của nó

from enum import Enum

Code language: Python [python]
8

đầu ra

from enum import Enum

Code language: Python [python]
7

Vì một phép liệt kê có thể gọi được, nên bạn có thể lấy một thành viên theo giá trị của nó. Ví dụ: phần sau trả về thành viên

print[type[Color.RED]]

Code language: Python [python]
44 của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 theo giá trị của nó

print[type[Color.RED]]

Code language: Python [python]
00

đầu ra

from enum import Enum

Code language: Python [python]
7

Biểu thức sau trả về

print[type[Color.RED]]

Code language: Python [python]
55 vì nó truy cập cùng một phần tử liệt kê bằng cách sử dụng tên và giá trị

print[type[Color.RED]]

Code language: Python [python]
02

đầu ra

print[type[Color.RED]]

Code language: Python [python]
5

Lặp lại các thành viên liệt kê

Các phép liệt kê là các phép lặp nên bạn có thể lặp lại chúng bằng vòng lặp

print[type[Color.RED]]

Code language: Python [python]
56. Ví dụ

print[type[Color.RED]]

Code language: Python [python]
04

đầu ra

print[type[Color.RED]]

Code language: Python [python]
05

Lưu ý rằng thứ tự của các thành viên giống như trong định nghĩa liệt kê

Ngoài ra, bạn có thể sử dụng hàm

print[type[Color.RED]]

Code language: Python [python]
57 để trả về danh sách các thành viên từ một kiểu liệt kê

print[type[Color.RED]]

Code language: Python [python]
06

đầu ra

print[type[Color.RED]]

Code language: Python [python]
07

Bảng liệt kê là bất biến

Bảng liệt kê là bất biến. Điều đó có nghĩa là bạn không thể thêm hoặc xóa thành viên sau khi đã xác định kiểu liệt kê. Và bạn cũng không thể thay đổi giá trị thành viên

Ví dụ sau cố gắng chỉ định một thành viên mới cho bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 và gây ra một

print[type[Color.RED]]

Code language: Python [python]
59

print[type[Color.RED]]

Code language: Python [python]
08

Lỗi

print[type[Color.RED]]

Code language: Python [python]
09

Ví dụ sau cố gắng thay đổi giá trị của phần tử

print[type[Color.RED]]

Code language: Python [python]
44 của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 và gây ra lỗi

print[type[Color.RED]]

Code language: Python [python]
62

print[type[Color.RED]]

Code language: Python [python]
20

đầu ra

print[type[Color.RED]]

Code language: Python [python]
21

Kế thừa từ một kiểu liệt kê

Một kiểu liệt kê không thể được kế thừa trừ khi nó không chứa thành viên nào. Ví dụ sau hoạt động tốt vì bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
7 không chứa thành viên nào

print[type[Color.RED]]

Code language: Python [python]
22

Tuy nhiên, ví dụ sau sẽ không hoạt động vì bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
64 có các thành viên

print[type[Color.RED]]

Code language: Python [python]
23

Lỗi

print[type[Color.RED]]

Code language: Python [python]
24

Ví dụ liệt kê Python

Ví dụ sau định nghĩa một kiểu liệt kê có tên là

print[type[Color.RED]]

Code language: Python [python]
65

print[type[Color.RED]]

Code language: Python [python]
25

Giả sử bạn nhận được phản hồi từ yêu cầu HTTP với chuỗi sau

print[type[Color.RED]]

Code language: Python [python]
26

Và bạn muốn tra cứu sự liệt kê của

print[type[Color.RED]]

Code language: Python [python]
65 bởi

print[type[Color.RED]]

Code language: Python [python]
67. Để làm điều đó, bạn cần chuyển đổi chuỗi của phản hồi thành từ điển và nhận giá trị của trạng thái

print[type[Color.RED]]

Code language: Python [python]
27

Và sau đó bạn tra cứu thành viên của bảng liệt kê

print[type[Color.RED]]

Code language: Python [python]
65 theo giá trị của trạng thái

print[type[Color.RED]]

Code language: Python [python]
28

đầu ra

print[type[Color.RED]]

Code language: Python [python]
29

Đây là chương trình hoàn chỉnh

print[type[Color.RED]]

Code language: Python [python]
0

Nếu

print[type[Color.RED]]

Code language: Python [python]
67 không phải là một trong những giá trị của thành viên

print[type[Color.RED]]

Code language: Python [python]
65 thì sao? . Ví dụ

Là một enum có thể lặp lại?

Việc liệt kê giống như một Iterator , không phải Iterable . Một bộ sưu tập có thể lặp lại. Một Iterator không phải là.

Bạn có thể lặp qua enum không?

Để lặp qua một phép liệt kê, bạn có thể di chuyển nó vào một mảng bằng phương thức GetValues . Bạn cũng có thể lặp qua một phép liệt kê bằng cách sử dụng For. Mỗi câu lệnh, sử dụng phương thức GetNames hoặc GetValues ​​để trích xuất giá trị chuỗi hoặc số.

Python enum có bất biến không?

Liệt kê là một loại dữ liệu để xác định một tập hợp các giá trị bất biến có liên quan .

Có phải enum luôn công khai không?

Một enum có thể, giống như một lớp, có các thuộc tính và phương thức. Sự khác biệt duy nhất là hằng số enum là công khai, tĩnh và cuối cùng [không thể thay đổi - không thể ghi đè]. Một enum không thể được sử dụng để tạo các đối tượng và nó không thể mở rộng các lớp khác [nhưng nó có thể triển khai các giao diện].

Chủ Đề