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. Một enum có các đặc điểm sau.
Các enum là biểu diễn chuỗi có thể đánh giá của một đối tượng còn được gọi là repr [].
Tên của enum được hiển thị bằng cách sử dụng từ khóa ‘name.
Sử dụng loại [] chúng ta có thể kiểm tra các loại enum.
Thí dụ
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # print the enum member as a string print ["The enum member as a string is : ",end=""] print [Days.Mon] # print the enum member as a repr print ["he enum member as a repr is : ",end=""] print [repr[Days.Sun]] # Check type of enum member print ["The type of enum member is : ",end =""] print [type[Days.Mon]] # print name of enum member print ["The name of enum member is : ",end =""] print [Days.Tue.name]
Đầu ra
Chạy mã trên cho chúng ta kết quả sau -
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue
In enum là một người có thể
Chúng ta có thể in enum như một danh sách có thể lặp lại. Trong mã dưới đây, chúng tôi sử dụng một vòng lặp để in tất cả các thành viên Enum.
Thí dụ
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]
Đầu ra
Chạy mã trên cho chúng ta kết quả sau -
The enum members are : Days.Sun Days.Mon Days.Tue
In enum là một người có thể
Chúng ta có thể in enum như một danh sách có thể lặp lại. Trong mã dưới đây, chúng tôi sử dụng một vòng lặp để in tất cả các thành viên Enum.
Thí dụ
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]
Đầu ra
Chạy mã trên cho chúng ta kết quả sau -
True
In enum là một người có thể
Chúng ta có thể in enum như một danh sách có thể lặp lại. Trong mã dưới đây, chúng tôi sử dụng một vòng lặp để in tất cả các thành viên Enum.
Thí dụ
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]
Đầu ra
Chạy mã trên cho chúng ta kết quả sau -
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun
In enum là một người có thể
Chúng ta có thể in enum như một danh sách có thể lặp lại. Trong mã dưới đây, chúng tôi sử dụng một vòng lặp để in tất cả các thành viên Enum.
Thí dụ
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 1 if Days.Sun == Days.Tue: print['Match'] if Days.Mon != Days.Tue: print['No Match']
Đầu ra
Chạy mã trên cho chúng ta kết quả sau -
Match No Match
In enum là một người có thể
- Chúng ta có thể in enum như một danh sách có thể lặp lại. Trong mã dưới đây, chúng tôi sử dụng một vòng lặp để in tất cả các thành viên Enum.
- Băm enums
- Các thành viên trong một liệt kê có thể băm, do đó chúng có thể được sử dụng trong từ điển và bộ. Trong ví dụ dưới đây, chúng tôi thấy băm trong hành động và kiểm tra xem băm có thành công không.
- Truy cập enums
- 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.
- So sánh các enum
- So sánh các enum là một quá trình chuyển tiếp mạnh, chúng tôi sử dụng toán tử so sánh.
- Cập nhật vào ngày 10 tháng 6 năm 2020 15:54:23
- Câu hỏi và câu trả lời liên quan
- enum - Hỗ trợ cho các liệt kê trong Python
- Enum trong c#
- Enum trong java
- Enum trong c
- Phương pháp enum trong java
- Người xây dựng enum trong java
- So sánh các thành viên enum trong C#
Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về liệt kê Python và cách sử dụng nó một cách hiệu quả.: in this tutorial, you’ll learn about Python enumeration and how to use it effectively.
Giới thiệu về liệt kê Python
Theo định nghĩa, một bảng liệt kê là một tập hợp các thành viên có liên quan đến các giá trị hằng số duy nhất. Liệt kê thường được gọi là enum.
Python cung cấp cho bạn mô -đun
True4 có chứa loại
True5 để xác định các liệt kê mới. Và bạn xác định một loại bảng liệt kê mới bằng cách phân lớp lớp
True5.
Ví dụ sau đây cho thấy cách tạo một bảng liệt kê được gọi là
True7:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue0
Làm thế nào nó hoạt động.
Đầu tiên, nhập loại
True5 từ mô -đun
True4:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue1
Thứ hai, xác định lớp
True7 kế thừa từ loại
True5:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue2
Thứ ba, xác định các thành viên của bảng liệt kê
True7:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue3
Lưu ý rằng các thành viên liệt kê là các hằng số. Do đó, tên của họ là bằng chữ hoa bằng quy ước.
Trong ví dụ này,
True7 là một bảng liệt kê.
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]4,
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]5 và
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]6 là thành viên của bảng liệt kê
True7. Chúng có các giá trị liên quan 1, 2 và 3.
Loại của một thành viên là sự liệt kê mà nó thuộc về.
Sau đây minh họa rằng loại
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]8 là bảng liệt kê
True7:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue4
Output:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue5
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]8 cũng là một ví dụ của bảng liệt kê
True7:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue6
Output:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue7
Và nó có tên và các thuộc tính giá trị:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue8
Output:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue9
Tư cách thành viên và bình đẳng
Để kiểm tra xem một thành viên có đang liệt kê hay không, bạn sử dụng toán tử
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun2. Ví dụ:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]0
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]1
Để so sánh hai thành viên, bạn có thể sử dụng toán tử
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun3 hoặc
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun4. Ví dụ:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]2
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]3
Lưu ý rằng một thành viên và giá trị liên quan của nó không bằng nhau. Ví dụ sau trả về
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun5:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]4
Đầu ra:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]5
Các thành viên liệt kê có thể băm
Các 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 thành viên bảng liệt kê làm khóa trong từ điển hoặc làm yếu tố của một bộ.
Ví dụ sau sử dụng các thành viên của
True7 liệt kê trong từ điển:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]6
Truy cập thành viên liệt kê theo tên và giá trị
Cách điển hình để truy cập thành viên liệt kê là sử dụng cú pháp ký hiệu dấu chấm [.] Như bạn đã thấy cho đến nay:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]7
Bởi vì
True5 thực hiện phương pháp
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun8, bạn cũng có thể sử dụng một cú pháp vuông
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun9 để lấy tên của nó.
Ví dụ: sau đây sử dụng Square Brackets
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun9 Cú pháp để có được thành viên
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]4 của bảng liệt kê
True7 theo tên của nó:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]8
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]7
Vì một bảng liệt kê có thể gọi được, bạn có thể nhận được một thành viên theo giá trị của nó. Ví dụ: sau đây trả về thành viên
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]4 của bảng liệt kê
True7 theo giá trị của nó:
The enum members are : Days.Sun Days.Mon Days.Tue0
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 3 # printing all enum members using loop print ["The enum members are : "] for weekday in [Days]: print[weekday]7
Biểu thức sau trả về
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 1 if Days.Sun == Days.Tue: print['Match'] if Days.Mon != Days.Tue: print['No Match']5 vì nó truy cập cùng một thành viên liệt kê bằng cách sử dụng tên và giá trị:
The enum members are : Days.Sun Days.Mon Days.Tue2
Output:
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue7
Lặp lại các thành viên liệt kê
Các liệt kê là lặp đi lặp lại để bạn có thể lặp lại chúng bằng cách sử dụng vòng lặp
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 1 if Days.Sun == Days.Tue: print['Match'] if Days.Mon != Days.Tue: print['No Match']6. Ví dụ:
The enum members are : Days.Sun Days.Mon Days.Tue4
Output:
The enum members are : Days.Sun Days.Mon Days.Tue5
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 chức năng
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 1 if Days.Sun == Days.Tue: print['Match'] if Days.Mon != Days.Tue: print['No Match']7 để trả về danh sách các thành viên từ một bảng liệt kê:
The enum members are : Days.Sun Days.Mon Days.Tue6
Output:
The enum members are : Days.Sun Days.Mon Days.Tue7
Liệt kê là bất biến
Liệt kê là bất biến. Điều đó có nghĩa là bạn không thể thêm hoặc loại bỏ các thành viên sau khi một liệt kê được xác định. Và bạn cũng không thể thay đổi các giá trị thành viên.
Ví dụ sau đây cố gắng gán một thành viên mới cho bảng liệt kê
True7 và gây ra
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 Tue = 1 if Days.Sun == Days.Tue: print['Match'] if Days.Mon != Days.Tue: print['No Match']9:
The enum members are : Days.Sun Days.Mon Days.Tue8
Error:
The enum members are : Days.Sun Days.Mon Days.Tue9
Ví dụ sau đây cố gắng thay đổi giá trị của thành viên
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 print['enum member accessed by name: '] print [Days['Mon']] print['enum member accessed by Value: '] print [Days[1]]4 của bảng liệt kê
True7 và gây ra
Match No Match2:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]0
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]1
Kế thừa từ một liệt kê
Một bảng liệt kê không thể được kế thừa trừ khi nó không chứa thành viên. Ví dụ sau hoạt động tốt vì bảng liệt kê
True7 không chứa thành viên:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]2
Tuy nhiên, ví dụ sau đây đã giành được công việc vì sự liệt kê của
Match No Match4 có thành viên:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]3
Error:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]4
Ví dụ về liệt kê Python
Ví dụ sau đây xác định một bảng liệt kê được gọi là
Match No Match5:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]5
Giả sử bạn nhận được phản hồi từ yêu cầu HTTP với chuỗi sau:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]6
Và bạn muốn tra cứu
Match No Match5 liệt kê bởi
Match No Match7. Để làm điều đó, bạn cần chuyển đổi chuỗi phản hồi của chuỗi thành một từ điển và nhận được giá trị của trạng thái:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]7
Và sau đó, bạn tìm kiếm thành viên của
Match No Match5 liệt kê theo giá trị trạng thái:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]8
Output:
import enum # Using enum class create enumerations class Days[enum.Enum]: Sun = 1 Mon = 2 # Hashing to create a dictionary Daytype = {} Daytype[Days.Sun] = 'Sun God' Daytype[Days.Mon] = 'Moon God' # Checkign if the hashing is successful print[Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}]9
Đây là chương trình hoàn chỉnh:
True0
Điều gì sẽ xảy ra nếu
Match No Match7 không phải là một trong những giá trị của các thành viên
Match No Match5? Sau đó, bạn sẽ nhận được một lỗi. Ví dụ:
True1
Error:
True2
Để bắt được ngoại lệ, bạn có thể sử dụng thử nghiệm trừ, ngoại trừ câu lệnh như sau:
True3
Bản tóm tắt
- Một bảng liệt kê là một tập hợp các thành viên có các giá trị không đổi duy nhất liên quan.
- Tạo một bảng liệt kê mới bằng cách xác định một lớp kế thừa từ loại
True
5 của mô -đun Enum. - Các thành viên có cùng loại với sự liệt kê mà họ thuộc về.
- Sử dụng
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue
02 để truy cập vào một thành viên bằng tên của nó vàThe enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue
03 để truy cập vào một thành viên bằng giá trị của nó. - Liệt kê là có thể hiểu được.
- Các thành viên liệt kê có thể băm.
- Có thể phản đối là có thể tránh khỏi.
- Không thể kế thừa từ một bảng liệt kê trừ khi nó không có thành viên.
Bạn có thấy hướng dẫn này hữu ích không?