CodeBlanks Logo Icon CodeBlanks

@property

@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

main.py
# Account sınıfına property ekle

Örnek çözüm

main.py
# 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

Soru
    ____
    def balance(self):
        return self._balance
Cevap
    @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

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