Yazının geneli doğru olmakla beraber bir iki yerde ciddi hata var.İyice kafa karışıklığına yol açmaması için düzelme ihtiyacı duydum.Özellikle Emin demirci gibi Java tarafından gelenler için.
24 Mayıs 2012 16:45 tarihinde Serdar KÖYLÜ <[email protected]> yazdı: > Fark, java ve python'un yaklaşımında gizli. Python yorumlayıcı, java > derleyici. Ve python runtime'da her şeyi değiştirmenize imkan > sağlıyor. Bu, teknik olarak, herşeyin zaten bir abstract class > olmasına yol açıyor. Şu olaya bakalım: > > Tam tersine bu dinamiklik hiçbir şeyin abstract class olarak kullanılamıyacağı sonucunu çıkartıyor.Şöyleki abstract class lar aynı zamanda sizin miras alacak olan sınıfınızın şekil şemalini belirler.Soyut(abstract) olmasının nedeni sonradan keyfi değiştirilebilirlikten değil tam tersine türeteceğiniz sınıfın şekil şemalini belirlerken işlevsellikten -kısmen- uzak olmasından kaynaklanıyor. Python'da veri tipi diye bir kavram yok, float, int, string vs. vs. > söz konusu değil. > > Aslında var gördüğüm kadarıyla.str(x) dediğiniz anda nesnenizin bellekteki şekil şemalini String yapısına uyacak şekilde biçimlendirmiş oluyorsunuz.Sadece bu şekil şemal dinamik olarak değiştirilebiliyor. Şöyleki: >>> a=3 >>> type(a) <type 'int'> >>> > Ve evet, her şey aslında bir abstract class tanımıyla işliyor bu > şekilde. Tam tersine herşey bir abstract class mantığının çok uzağında belirli ayrılmış alanlar yerine heap mantığında çalışıyor.Bu da bir abstraction olayını imkansız hale getiriyor.Bu dilin güzel fakat aynı zamanda ihtiyaç duyulduğunda da kötü bir tarafı. Zaman zaman saç baş yoldurduğu oluyor (: Keza yapı tamamen denetiminiz dışına çıkabiliyor.
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
