IntEnum dan Flag
Gunakan enum bilangan bulat dan flag
IntEnum dan Flag adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Di Luar Enumerasi Biasa
Modul enumerasi menyediakan kelas dasar khusus. Anggota IntEnum berperilaku seperti bilangan bulat, sedangkan anggota penanda dapat digabungkan dengan operator bit. Kelas-kelas ini mencakup kasus yang terlalu terbatas untuk Enum biasa.
Enum Biasa Bukan Bilangan Bulat
Anggota Enum biasa tidak dapat dipertukarkan dengan nilai bilangan bulatnya. Membandingkannya dengan angka akan menghasilkan False.
from enum import Enum
class Level(Enum):
LOW = 1
HIGH = 2
print(Level.LOW == 1)IntEnum Dibandingkan sebagai Bilangan Bulat
Anggota IntEnum merupakan bilangan bulat, sehingga nilainya sama dengan nilai numeriknya saat dibandingkan dan mendukung pengurutan.
from enum import IntEnum
class Level(IntEnum):
LOW = 1
HIGH = 2
print(Level.LOW == 1)
print(Level.LOW < Level.HIGH)IntEnum dalam Aritmetika
Karena anggotanya merupakan bilangan bulat sungguhan, Anda dapat menggunakannya dalam perhitungan matematika dan pengindeksan. Gunakan ini ketika suatu nilai memang perlu berinteraksi dengan kode numerik.
from enum import IntEnum
class Priority(IntEnum):
LOW = 1
MEDIUM = 5
HIGH = 10
print(Priority.HIGH + 1)
print(Priority.MEDIUM * 2)Mengurutkan Anggota IntEnum
Karena IntEnum mendukung pengurutan, daftar anggota dapat diurutkan berdasarkan nilainya tanpa fungsi kunci tambahan.
from enum import IntEnum
class Priority(IntEnum):
LOW = 1
MEDIUM = 5
HIGH = 10
for p in sorted([Priority.HIGH, Priority.LOW, Priority.MEDIUM]):
print(p.name)Penanda untuk Opsi yang Dapat Digabungkan
Enumerasi Flag ditujukan untuk nilai yang akan Anda gabungkan. Tetapkan pangkat dua agar setiap anggota menempati bitnya sendiri.
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
print(Permission.READ)
print(Permission.READ.value)Menggabungkan Penanda dengan |
Gunakan operator OR bit per bit | untuk menggabungkan penanda menjadi satu nilai gabungan.
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
print(access)Menguji Keanggotaan dengan in
Periksa apakah sebuah penanda telah ditetapkan menggunakan operator in, yang melakukan pengujian bit untuk Anda.
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
print(Permission.READ in access)
print(Permission.EXECUTE in access)Irisan dan Penghapusan
Gabungkan penanda dengan & (AND) untuk menemukan bit yang sama, dan hapus sebuah penanda dengan & terhadap komplemen ~.
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
still = access & ~Permission.WRITE
print(still)IntFlag untuk Penanda Bilangan Bulat
IntFlag menggabungkan kedua gagasan tersebut: penanda yang dapat digabungkan dan juga berperilaku seperti bilangan bulat biasa. Ini berguna saat berinteraksi dengan API C atau masker bit yang disimpan sebagai angka.
from enum import IntFlag, auto
class Mode(IntFlag):
R = 4
W = 2
X = 1
m = Mode.R | Mode.W
print(int(m))Menelusuri Penanda Gabungan
Perulangan pada nilai penanda gabungan menghasilkan setiap penanda individual yang dikandungnya, sehingga berguna untuk mencantumkan opsi yang aktif.
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.EXECUTE
for p in access:
print(p.name)Pemeriksaan Singkat
Mengapa Anda memilih enumerasi Flag daripada Enum biasa?
Rangkuman
Anda telah mempelajari enumerasi bilangan bulat dan penanda.
- Anggota
IntEnumberperilaku seperti bilangan bulat serta mendukung pengurutan dan aritmetika. - Anggota
Flagdapat digabungkan dengan|,&, dan~, serta diuji denganin. IntFlagmenggabungkan kedua perilaku tersebut.- Gunakan pangkat dua untuk nilai penanda.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “IntEnum dan Flag” gratis?
Ya — teks lengkap “IntEnum dan Flag” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “IntEnum dan Flag”?
Gunakan enum bilangan bulat dan flag Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “IntEnum dan Flag” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kelas Enum
- IntEnum dan Flag
- Dasar-Dasar NamedTuple
- typing.NamedTuple