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

Cevap