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