Özet - Kapsülleme
- Python kursu
- Orta seviye
- Ders 23/116
- 5 dk
@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
# Account sınıfını birleştirÖrnek çözüm
# 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
@property
def balance(self):
return self.____
@property
def balance(self):
return self._balance
Açıklama: Getter iç _balance özniteliğini döndürür.