CodeBlanks Logo Icon CodeBlanks

Özet - Kapsülleme

@property, @dataclass ve __slots__'u birleştirerek bir Account sınıfı yazarsın.

Özet - Kapsülleme

Bu grupta kapsülleme kavramını işledik: _balance geleneği, @property ile getter, @x.setter ile setter, @dataclass ile sade sınıf ve __slots__ ile düzen kısıtı.

Kapsülleme, iç veriyi korur ve dış arayüzü sabit tutar. @property + setter, atama sırasında doğrulama yapar. @dataclass yazılımı sadeleştirir. __slots__ bellek ve düzen denetimi sağlar. Şimdi bunları birleştiren bir Account sınıfı yazacağız.

Uygulama Account sınıfını birleştir

Account sınıfını tanımla. __init__(self, balance) ve self._balance = balance yaz. @property ile def balance(self): ve return self._balance yaz. @balance.setter ile def balance(self, value): ekle; gövdede if value < 0: ve return, sonra self._balance = value yaz. Sonra a = Account(100) ve print(a.balance) çağrısı yap.

Başlangıç kodu

main.py
# Account sınıfını birleştir

Örnek çözüm

main.py
# Account sınıfını birleştir
class Account:
    def __init__(self, balance):
        self._balance = balance
    @property
    def balance(self):
        return self._balance
    @balance.setter
    def balance(self, value):
        if value < 0:
            return
        self._balance = value

a = Account(100)
print(a.balance)

Beklenen çıktı

100

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Setter içinde ne yapılır?

  • Sınıf silinir
  • Yeni bir örnek oluşturulur
  • Atanan değer doğrulanır ve iç veriye yazılır Doğru cevap
  • Sınıf adı değiştirilir

Açıklama: Setter, değeri doğrulayıp iç özniteliğe yazar.

2 Kavramları eşle

Kavram Anlamı
_balance Özel öznitelik
@property Getter
@balance.setter Setter

3 Getter gövdesini tamamla

Soru
    @property
    def balance(self):
        return self.____
Cevap
    @property
    def balance(self):
        return self._balance

Açıklama: Getter iç _balance özniteliğini döndürür.

Orta seviye bölümündeki tüm dersler