Computer >> Máy Tính >  >> Lập trình >> Python

Enum bằng Python

Enum là một lớp trong python để tạo bảng liệt kê, là một tập hợp các tên tượng trưng (thành viên) được liên kết với các giá trị không đổi, duy nhất. Các thành viên của một phép liệt kê có thể được so sánh bằng các ký hiệu tượng trưng này và bản thân phép liệt kê có thể được lặp lại. Một enum có các đặc điểm sau.

  • Các enums là biểu diễn chuỗi có thể đánh giá được 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 từ khóa "name".

  • Sử dụng type (), chúng ta có thể kiểm tra các loại enum.

Ví 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 đoạn 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 dưới dạng có thể lặp lại

Chúng ta có thể in enum dưới dạng một danh sách có thể lặp lại. Trong đoạn mã dưới đây, chúng tôi sử dụng vòng lặp for để in tất cả các thành viên enum.

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The enum members are :
Days.Sun
Days.Mon
Days.Tue

Hashing enums

Các thành viên trong Bảng kê có thể được 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 ta thấy hàm băm đang hoạt động và kiểm tra xem quá trình băm có thành công hay không.

Ví 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 đoạn mã trên cho chúng ta kết quả sau -

True

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 ta truy cập giá trị theo tên, trong đó chúng ta sử dụng tên của enu làm chỉ mục.

Ví 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 đoạn mã trên cho chúng ta kết quả sau -

Thành viên
enum member accessed by name:
Days.Mon
enum member accessed by Value:
Days.Sun

So sánh các enums

So sánh các enums là một quá trình tiến lên nhanh chóng, chúng tôi sử dụng toán tử so sánh.

Ví 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 đoạn mã trên cho chúng ta kết quả sau -

Match
No Match