Kod yazarken bazen yazdığınız şey olması gerektiği gibi çalışmaz, mantıklı bir sebep bulabilmek için saatlerce ararsınız, tararsınız, kodu şekilden şekile sokup yapboza çevirirsiniz, ama nafile. Hatta yazdığınız kodu o kadar basite indirgersiniz ki, artık "Yeni başlayanlar için ..." kitabının ilk sayfasında yer alabilecek hale gelir.
O anda artık bunun bir hata değil çok basit olduğu halde yorgunluk ve dikkatsizlikten mütevellit göremediğiniz bir şeyden olduğunu içten içe hissedersiniz, ama saç baş yolunma noktasına çoktan gelinmiştir. Tıpkı aşağıdaki Python kodunda olduğu gibi;
class C:
def seta(self, a): pass
def geta(self): return "a"
x = property(geta,seta)
test = C()
test.x = "b"
print(test.x)
Kodun her durumda "a" çıktısı vermesi gerektiğini düşünürsünüz ama "b" verir. İşte böyle bir durumda yapılacak en iyi şey uzun bir ara verip, dingin bir kafa ve yeni bir bakış açısıyla dönmektir. Çünkü döndüğünüzde eksiği şıp diye bulacaksınızdır. :D
Başlık yazmayı unutmuşum, blogger'dan "nerede bunun başlığı kardeşim!" diye bir uyarı beklerdim, biraz geç fark ettim :)
YanıtlaSilneymiş sebep?
YanıtlaSiltest.x="b" yi kaldır hep a versin işte ne uğraşıyon?
YanıtlaSilclass C nin object den inherit ettiğini belirtmeniz gerekmiyor muydu ?
YanıtlaSilyani :
class C(object):
şeklinde başladığınızda sorun devam ediyor mu ?
Evet Ömer bey dediğiniz gibi, yazıyı da bunu gördükten sonra yazmıştım zaten :)
YanıtlaSil