Konuyu Açan
#0
Dataclass, Python 3.7 ile birlikte gelen ve veri sınıflarının tanımlanmasını kolaylaştıran bir özellik olarak karşımıza çıkmaktadır. Veri sınıfları, bir nesnenin yalnızca veri tutmak için kullanıldığı durumlarda, kodun daha okunabilir ve bakımı daha kolay hale gelmesini sağlar. Dataclass kullanarak sınıflarınızı tanımlamak, boilerplate kodunu azaltır ve sınıfın temel işlevlerini otomatik olarak oluşturmanıza olanak tanır.
Dataclass'ları kullanmak için öncelikle
Yukarıdaki örnekte,
Dataclass'ların en önemli özelliklerinden biri varsayılan değer atama yeteneğidir. Aşağıdaki örnekte,
Bu durumda,
Bir diğer önemli özellik ise, dataclass'ların mutable veya immutable olarak tanımlanabilmesidir. Eğer değiştirilemez bir dataclass oluşturmak istiyorsanız,
Bu şekilde,
Dataclass'ları kullanmak için öncelikle
dataclasses modülünü içe aktarmanız gerekiyor. İşte basit bir örnek:CODE
12345678
from dataclasses import dataclass
@dataclass
class Kisi:
ad: str
soyad: str
yas: int
Yukarıdaki örnekte,
Kisi adında bir dataclass tanımladık. Bu sınıf, ad, soyad ve yas adlı üç alan içermektedir. Dataclass, bu alanların otomatik olarak __init__, __repr__, __eq__ ve diğer özel yöntemlerini oluşturur, böylece bu yöntemleri elle tanımlamak zorunda kalmazsınız.Dataclass'ların en önemli özelliklerinden biri varsayılan değer atama yeteneğidir. Aşağıdaki örnekte,
yas alanına bir varsayılan değer ekleyelim:CODE
123456
@dataclass
class Kisi:
ad: str
soyad: str
yas: int = 30
Bu durumda,
Kisi sınıfını oluştururken yas parametresini belirtmezseniz, otomatik olarak 30 değeri atanacaktır.Bir diğer önemli özellik ise, dataclass'ların mutable veya immutable olarak tanımlanabilmesidir. Eğer değiştirilemez bir dataclass oluşturmak istiyorsanız,
frozen=True parametresini kullanabilirsiniz:CODE
123456
@dataclass(frozen=True)
class Kisi:
ad: str
soyad: str
yas: int
Bu şekilde,
Kisi nesneleri oluşturulduktan sonra değiştirilemeyecek ve hata alacaksınız. Dataclass kullanımı, kodunuzu daha modüler ve yönetilebilir hale getirir. Python'da veri yapılarıyla çalışırken dataclass'ları kullanmak, projenizin karmaşıklığını azaltmanıza yardımcı olacaktır.