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