Selamun aleyküm arkadaşlar, istihza.com kapandığında çok üzülmüştüm burada tekrar projenin devam ettiğini görünce tekrardan sevindim. Öncelikle bu projede emek sarfedenlere çok teşekkür ediyorum.
https://belgeler.yazbel.com/python-istihza/nesne_tabanli_programlama4.html#gizli-uyeler adresindeki İsim Bulandırma konusunu çalıştım, kendimce uygulama yapıyordum fakat başarılı olamadım. Gizlediğim atribute (nitelik) ile methoda konuda anlatıldığı şekilde ulaşmaya çalıştım fakat başarılı olamadım. Acaba python sürümünden mi kaynaklanıyor yoksa kodlarımda hata mı var bilmediğim için size danışıyorum. Örnek kodlarım aşağıdadır:
class BankUyeleri():
__musteriler = []
def __init__(self,adi,soyadi,parasi):
self.yuzde=0
self.adi = adi
self.soyadi = soyadi
self.parasi = int(parasi)
self.tamadi = self.adi + " " + self.soyadi
BankUyeleri.__musteriler.append(self.tamadi)
def zam_yap(self, yuzde):
self.yuzde=int(yuzde)
print("Eski maaş: ",self.parasi)
self.parasi = (self.parasi/self.yuzde)+self.parasi
print("Zamlı maaş: ", self.parasi)
@classmethod
def __musteri_bak(cls):
print(cls.__musteriler)
b1 = BankUyeleri("Falan","FİLAN",100)
print(b1.musteriler) # Erişilemiyor..!
b1.zam_yap(25) # Erişilebiliyor
b1.musteri_bak # Erişilemiyor..!
print(b1.__musteriler) # Erişilemiyor..!
b1.__musteri_bak # Erişilemiyor..!
"""Gizli üyeye erişme yolu...!"""
b1._BankUyeleri.__musteriler
BankUyeleri sınıfımdaki musteriler listesini konuda olduğu gibi başına iki adet alt çizgi koyarak gizledim. Aynısını musteri_bak methodu için de yaptım.
Yine konuda anlatıdığı üzere son satırda yazdığım kodu kabukta çalıştırmayı denediğimde müşterilerin ismine ulaşamıyorum. Aşağıdaki hatayı alıyorum;
b1._BankUyeleri.__musteriler
Traceback (most recent call last):
File "<ipython-input-72-9f41407629cc>", line 1, in <module>
b1._BankUyeleri.__musteriler
AttributeError: 'BankUyeleri' object has no attribute '_BankUyeleri'