@property
- Python kursu
- Orta seviye
- Ders 19/116
- 5 dk
@property ile özellik tanımlamayı öğrenirsin.
@property decorator
@property decorator'ı, bir metodu öznitelik gibi okunabilir yapar. Parantez olmadan erişilir; bu, dışarıya kapsüllü bir görünüm verir.
Örnek: class Account:\n @property\n def balance(self):\n return self._balance. a.balance yazımı metodu çağırır; a.balance() değil. Bu, dış kodun erişim biçimini değiştirmeden iç mantığı güncellemeyi kolaylaştırır; örneğin hesaplama eklemek mümkündür.
Parantez olmadan erişim
@property ile işaretlenen metot, parantez olmadan çağrılır. a.balance yazımı yeterlidir; a.balance() hata verir. Bu, öznitelik ile hesaplanmış değer arasındaki farkı dışarıdan gizler.
Böylece bugün self._balance döndürür, yarın bunu bir hesaplama yapabilirsin; dış kod değişmez. Bu, kapsüllemenin özüdür: dış arayüz sabit, iç veri esnek. Örnek: return self._balance * self._rate.
Uygulama Account'a @property ekle
Account sınıfını tanımla. def __init__(self, balance): ve gövdede self._balance = balance yaz. Üzerine @property decorator'ı ve def balance(self): metodu ekle; gövdede return self._balance yaz. Sonra a = Account(100) ile örnek oluştur ve print(a.balance) çağrısı yap.
Başlangıç kodu
# Account sınıfına property ekleÖrnek çözüm
# Account sınıfını @property ile tanımla
class Account:
def __init__(self, balance):
self._balance = balance
@property
def balance(self):
return self._balance
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 @property satırını tamamla
____
def balance(self):
return self._balance
@property
def balance(self):
return self._balance
Açıklama: @property decorator'ı metodu okunur özniteliğe çevirir.
2 @property ne yapar?
- Bir özniteliği siler
- Bir sınıf değişkeni oluşturur
- Bir metodu öznitelik gibi okunur yapar Doğru cevap
- Bir metodu static yapar
Açıklama: @property metodu öznitelik gibi okunur yapar; parantez gerekmez.
3 @property kavramlarını eşle
| Kavram | Anlamı |
|---|---|
@property |
Getter decorator |
a.balance |
Parantezsiz erişim |
self._balance |
İç veri |