0Pricing
Python Academy · Ders

IntEnum ve Flag

Tamsayı ve bayrak enum'larını kullanın

IntEnum ve Flag, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Sade Numaralandırmanın Ötesinde

enum modülü, özelleşmiş temel sınıflar sunar. IntEnum üyeleri tamsayılar gibi davranır ve Bayrak üyeleri bit düzeyindeki işleçlerle birleştirilebilir. Bunlar, sade Enum sınıfının fazla kısıtlayıcı kaldığı durumları karşılar.

Sade Numaralandırma Tamsayı Değildir

Sade bir Enum üyesi, tamsayı değeriyle birbirinin yerine kullanılamaz. Bir sayıyla karşılaştırıldığında yanlış sonucu döndürür.

from enum import Enum

class Level(Enum):
    LOW = 1
    HIGH = 2

print(Level.LOW == 1)

IntEnum Tamsayı Gibi Karşılaştırılır

Bir IntEnum üyesi gerçekten tamsayıdır; bu nedenle sayısal değerine eşit karşılaştırılır ve sıralamayı destekler.

from enum import IntEnum

class Level(IntEnum):
    LOW = 1
    HIGH = 2

print(Level.LOW == 1)
print(Level.LOW < Level.HIGH)

Aritmetik İşlemlerde IntEnum

Üyeler gerçek tamsayılar olduğundan, onları matematiksel işlemlerde ve dizinlemede kullanabilirsiniz. Bir değerin sayısal kodla gerçekten birlikte çalışması gerektiğinde bunu kullanın.

from enum import IntEnum

class Priority(IntEnum):
    LOW = 1
    MEDIUM = 5
    HIGH = 10

print(Priority.HIGH + 1)
print(Priority.MEDIUM * 2)

IntEnum Üyelerini Sıralama

IntEnum sıralamayı desteklediği için üyelerden oluşan bir liste, ek bir anahtar işlevi olmadan değere göre sıralanır.

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)

Birleştirilebilir Seçenekler için Bayrak

Bir Flag numaralandırması, birleştireceğiniz değerler için tasarlanmıştır. Her üyenin kendi bitini kullanması için ikinin kuvvetlerini atayın.

from enum import Flag, auto

class Permission(Flag):
    READ = auto()
    WRITE = auto()
    EXECUTE = auto()

print(Permission.READ)
print(Permission.READ.value)

Bayrakları | ile Birleştirme

Bayrakları tek bir bileşik değerde birleştirmek için bit düzeyindeki OR işleci olan | kullanın.

from enum import Flag, auto

class Permission(Flag):
    READ = auto()
    WRITE = auto()
    EXECUTE = auto()

access = Permission.READ | Permission.WRITE
print(access)

in ile Üyelik Sınaması

Bir bayrağın ayarlanıp ayarlanmadığını, bit düzeyindeki sınamayı sizin için yapan in işleciyle kontrol edin.

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)

Kesişim ve Kaldırma

Ortak bitleri bulmak için bayrakları & (AND) ile birleştirin; bir bayrağı kaldırmak için tamamlayıcısı olan ~ ile birlikte & kullanın.

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)

Tamsayı Bayrakları için IntFlag

IntFlag iki fikri birleştirir: birleştirilebilen bayraklar aynı zamanda sade tamsayılar gibi davranır. Bu, C arayüzleriyle veya sayı olarak depolanan bit maskeleriyle çalışırken kullanışlıdır.

from enum import IntFlag, auto

class Mode(IntFlag):
    R = 4
    W = 2
    X = 1

m = Mode.R | Mode.W
print(int(m))

Birleşik Bayrak Üzerinde Yineleme

Birleşik bir Bayrak değeri üzerinde döngüye girmek, içerdiği her bir bayrağı verir; bu da etkin seçenekleri listelemek için kullanışlıdır.

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)

Hızlı Kontrol

Sade bir Enum yerine neden bir Flag numaralandırması seçersiniz?

Özet

Tamsayı ve bayrak numaralandırmalarını öğrendiniz.

  • IntEnum üyeleri tamsayılar gibi davranır ve sıralama ile aritmetik işlemleri destekler.
  • Flag üyeleri |, & ve ~ ile birleştirilir; üyelikleri in ile sınanır.
  • IntFlag her iki davranışı birleştirir.
  • Bayrak değerleri için ikinin kuvvetlerini kullanın.

Sıkça Sorulan Sorular

“IntEnum ve Flag” dersi ücretsiz mi?

Evet — “IntEnum ve Flag” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“IntEnum ve Flag” dersinde ne öğreneceğim?

Tamsayı ve bayrak enum'larını kullanın Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“IntEnum ve Flag” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Enum Sınıfı
  2. IntEnum ve Flag
  3. NamedTuple Temelleri
  4. typing.NamedTuple
← Python Academy Sayfasına Dön