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; üyelikleriinile sınanır.IntFlagher 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
- Enum Sınıfı
- IntEnum ve Flag
- NamedTuple Temelleri
- typing.NamedTuple