Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Enum ใน Python


Enum เป็นคลาสใน python สำหรับสร้างการแจงนับ ซึ่งเป็นชุดของชื่อสัญลักษณ์ (สมาชิก) ที่ผูกไว้กับค่าคงที่ที่ไม่ซ้ำกัน สมาชิกของการแจงนับสามารถเปรียบเทียบได้โดยใช้สัญลักษณ์เหล่านี้ และการแจงนับนั้นสามารถทำซ้ำได้ enum มีลักษณะดังต่อไปนี้

  • enums เป็นการแสดงสตริงที่ประเมินได้ของอ็อบเจ็กต์ที่เรียกว่า repr()

  • ชื่อของ enum จะแสดงโดยใช้คำสำคัญ 'name'

  • การใช้ type() เราสามารถตรวจสอบประเภท enum ได้

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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

การพิมพ์ enum เป็น iterable

เราสามารถพิมพ์ enum เป็นรายการที่ทำซ้ำได้ ในโค้ดด้านล่างเราใช้ for loop เพื่อพิมพ์สมาชิก enum ทั้งหมด

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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

การแฮช enums

สมาชิกในการแจงนับสามารถแฮชได้ ดังนั้นจึงสามารถใช้ในพจนานุกรมและเซตได้ ในตัวอย่างด้านล่าง เราจะเห็นการทำงานของการแฮชและตรวจสอบว่าการแฮชสำเร็จหรือไม่

ตัวอย่าง

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'})

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

True

การเข้าถึง enums

เราสามารถเข้าถึงสมาชิก enum โดยใช้ชื่อหรือค่าของรายการสมาชิก ในตัวอย่างด้านล่าง เราจะเข้าถึงค่าตามชื่อก่อน โดยเราใช้ชื่อของ enu เป็นดัชนี

ตัวอย่าง

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))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

enum member accessed by name:
Days.Mon
enum member accessed by Value:
Days.Sun

การเปรียบเทียบค่า enums

การเปรียบเทียบ enums เป็นกระบวนการตรงไปตรงมา เราใช้ตัวดำเนินการเปรียบเทียบ

ตัวอย่าง

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

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Match
No Match