Enumerasi dalam Python
Artikel ini menerangkan tentang enumerasi dalam Python.
YouTube Video
Enumerasi dalam Python
enum
dalam Python adalah kelas khas untuk mendefinisikan pemalar, meningkatkan kebolehbacaan dan membantu mengelakkan kesalahan pengekodan.
Apakah itu Enum
?
Enum
(singkatan dari enumeration) adalah kelas yang digunakan untuk mendefinisikan satu set pemalar bernama. Ia biasanya digunakan untuk mengumpulkan pemalar yang berkaitan bersama-sama. Sebagai contoh, ia sesuai untuk mewakili warna, hari-hari dalam seminggu, atau arah.
Kenapa menggunakan Enum
?
Terdapat beberapa sebab untuk menggunakan Enum
.
- Kebolehbacaan yang lebih baik: Menggunakan pemalar bernama menjadikan kod lebih intuitif.
- Pencegahan bug: Ia menghalang perubahan atau penyalahgunaan nilai pemalar.
- Pengelompokan: Ia mengatur pemalar yang berkaitan ke dalam satu kelas, mewakili data yang terstruktur.
Penggunaan asas Enum
Untuk menggunakan enum
, import modul enum
dan definisikan sebuah kelas. Kelas tersebut harus mewarisi dari Enum
dan mendefinisikan nilai yang anda mahu jadikan sebagai pemalar.
Contoh asas penggunaan Enum
1from enum import Enum
2
3class Color(Enum):
4 RED = 1
5 GREEN = 2
6 BLUE = 3
7
8# Usage of Enum
9print(Color.RED) # Color.RED
10print(Color.RED.name) # RED
11print(Color.RED.value) # 1
Dalam contoh ini, kami mendefinisikan sebuah kelas Enum
bernama Color
dengan tiga nilai. Setiap nama boleh diakses melalui atribut name
, dan nilai yang berkaitan boleh diakses melalui atribut value
.
Membandingkan Enum
Ahli Enum
boleh dibandingkan sama ada melalui nama atau nilai. Anda boleh menggunakan operator is
atau operator ==
untuk memeriksa identiti dan kesamaan.
Contoh perbandingan
1from enum import Enum
2
3class Direction(Enum):
4 NORTH = 1
5 SOUTH = 2
6 EAST = 3
7 WEST = 4
8
9# Equality comparison
10print(Direction.NORTH == Direction.SOUTH) # False
11print(Direction.NORTH == Direction.NORTH) # True
12
13# Identity comparison using is
14print(Direction.NORTH is Direction.SOUTH) # False
15print(Direction.NORTH is Direction.NORTH) # True
Di sini, perbandingan Enum
menggunakan ==
dan is
ditunjukkan. Enum
direka untuk membandingkan objek dengan nama dan nilai yang sama dengan betul.
Penetapan nilai automatik dengan auto()
Jika anda ingin menetapkan nilai kepada ahli Enum
secara automatik, anda boleh menggunakan enum.auto()
. auto()
membolehkan Python menetapkan nilai secara automatik, menghapuskan keperluan untuk spesifikasi manual oleh pembangun.
Contoh auto()
1from enum import Enum, auto
2
3class Animal(Enum):
4 DOG = auto()
5 CAT = auto()
6 MOUSE = auto()
7
8# Check the values of Enum
9print(Animal.DOG.value) # 1
10print(Animal.CAT.value) # 2
11print(Animal.MOUSE.value) # 3
Dalam contoh ini, penggunaan auto()
menghapuskan keperluan untuk menetapkan nilai secara eksplisit, menjadikan kod lebih ringkas.
Menetapkan pelbagai nilai kepada ahli Enum
Ahli Enum
juga boleh menyimpan pelbagai nilai, seperti tuple. Ini membolehkan setiap ahli menyimpan maklumat berkaitan tambahan.
Contoh menggunakan tuple
1from enum import Enum
2
3class Status(Enum):
4 ACTIVE = (1, 'Active user')
5 INACTIVE = (2, 'Inactive user')
6 SUSPENDED = (3, 'Suspended user')
7
8# Accessing Enum members
9print(Status.ACTIVE.name) # ACTIVE
10print(Status.ACTIVE.value) # (1, 'Active user')
11print(Status.ACTIVE.value[1]) # Active user
Dalam contoh ini, ahli kelas Status
mempunyai dua nilai setiap satu, mewakili keadaan dan penerangan. Ini berguna apabila anda ingin mengaitkan pelbagai maklumat dengan ahli Enum
.
Menggunakan Enum
sebagai bendera
Enum
Python merangkumi kelas Flag
yang boleh digunakan seperti bendera bit. Penggunaan Flag
membolehkan anda menguruskan pelbagai keadaan dalam gabungan.
Contoh Flag
1from enum import Flag, auto
2
3class Permission(Flag):
4 READ = auto()
5 WRITE = auto()
6 EXECUTE = auto()
7
8# Combining flags
9permission = Permission.READ | Permission.WRITE
10print(permission) # Permission.READ|WRITE
11print(Permission.EXECUTE in permission) # False
Dalam contoh ini, operasi bitwise digunakan untuk menggabungkan pelbagai kebenaran. Penggunaan Flag
membolehkan anda menguruskan pelbagai keadaan dengan ringkas.
Perkara yang perlu diingat semasa menggunakan Enum
Ketaktukaran Enum
Ahli Enum
tidak boleh diubah. Apabila ditetapkan, nama atau nilai mereka tidak boleh diubah. Ini adalah ciri penting untuk mengekalkan konsistensi sebagai pemalar.
1from enum import Enum
2
3class Days(Enum):
4 MONDAY = 1
5 TUESDAY = 2
6
7# Example of immutability
8# Days.MONDAY = 3 # AttributeError: Cannot reassign members.
Larangan ahli yang sama
Ahli Enum
mesti mempunyai nama dan nilai yang unik. Walaupun nilai duplikat dibenarkan, Python secara automatik mengutamakan ahli pertama.
Ringkasan
Modul enum
Python adalah alat yang sangat berguna untuk mengelompokkan set pemalar, meningkatkan kebolehbacaan, dan mengekalkan konsistensi kod. Pelbagai penggunaan adalah mungkin, dari penggunaan asas hingga penugasan nilai automatik menggunakan auto()
, serta penggunaan sebagai penanda bit.
Memahami dan menguasai enum
dengan baik dapat meningkatkan kualiti kod dan membantu mencegah ralat.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.