0Pricing
Python Academy · Pelajaran

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 IntEnum berperilaku seperti bilangan bulat serta mendukung pengurutan dan aritmetika.
  • Anggota Flag dapat digabungkan dengan |, &, dan ~, serta diuji dengan in.
  • IntFlag menggabungkan 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

  1. Kelas Enum
  2. IntEnum dan Flag
  3. Dasar-Dasar NamedTuple
  4. typing.NamedTuple
← Kembali ke Python Academy