Python veri sınıfları nasıl kullanılır?


Python’daki her şey bir nesnedir, ya da öyle söylenir. Kendi özellikleri ve yöntemleriyle kendi özel nesnelerinizi oluşturmak istiyorsanız, Python’u kullanırsınız. class bunun gerçekleşmesi için itiraz edin. Ancak Python’da sınıf oluşturmak bazen, kendisine iletilen parametrelerden sınıf örneğini ayarlamak veya karşılaştırma işleçleri gibi ortak işlevler oluşturmak için bir sürü tekrarlayan, standart kod yazmak anlamına gelir.

Python 3.7’de tanıtılan veri sınıfları (ve Python 3.6’ya desteklendi), sınıflar oluşturmak için kullanışlı, daha az ayrıntılı bir yol sağlar. Sınıfa iletilen bağımsız değişkenlerden özellikleri somutlaştırmak gibi bir sınıfta yaptığınız yaygın şeylerin çoğu birkaç temel talimata indirgenebilir.

Python veri sınıfı örneği

İşte Python’da geleneksel bir sınıfın basit bir örneği:


class Book:
    '''Object for tracking physical books in a collection.'''
    def __init__(self, name: str, weight: float, shelf_id:int = 0):
        self.name = name
        self.weight = weight # in grams, for calculating shipping
        self.shelf_id = shelf_id
    def __repr__(self):
        return(f"Book(name={self.name!r},
            weight={self.weight!r}, shelf_id={self.shelf_id!r})")

Buradaki en büyük baş ağrısı, argümanların her birinin __init__ nesnenin özelliklerine kopyalanmalıdır. Sadece bunlarla uğraşıyorsan bu o kadar da kötü değil Bookama ya uğraşmak zorunda kalırsan Bookshelf, Library, Warehouse, ve benzeri? Ayrıca, elle yazmanız gereken kod sayısı arttıkça hata yapma olasılığınız da artar.

İşte bir Python veri sınıfı olarak uygulanan aynı Python sınıfı:


from dataclasses import dataclass

@dataclass
class Book:
    '''Object for tracking physical books in a collection.'''
    name: str
    weight: float 
    shelf_id: int = 0

Özellikleri belirttiğinizde, çağrılan alanlar, bir veri sınıfında, @dataclass dekoratör, bunları başlatmak için gereken tüm kodu otomatik olarak üretir. Ayrıca her özellik için tür bilgisini de korur, bu nedenle linter gibi bir kod kullanırsanız mypysınıf kurucusuna doğru türde değişkenler sağladığınızdan emin olacaktır.

Telif hakkı © 2023 IDG Communications, Inc.



Kaynak : https://www.infoworld.com/article/3563878/how-to-use-python-dataclasses.html#tk.rss_all

Yorum yapın