a
fonksiyon olmadigi icin deger donduremez. a
degere sahip bir degisken.
“Kotu bir programciyim” demek istedik. if
gibi kontrollere giren / not
gibi operatorlere operand olan ifadelerin bool
turunde olmasi lazim, yoksa bool(ifade)
denmis gibi cevriliyorlar.
Programcinin hata yapmasini engellemek isteyen diller bu tur str
→ bool
gibi cevrimlerin implicit (otomatik) olmasina izin vermiyor cunku cevrim kurallari dili tasarlayan insanlarin kafasina gore oluyor ve mantiga veya dili kullananlarin beklentilerine her zaman uymuyor. bool("False")
Python’da True
mesela.
Bu kadar soru soran bir insan olarak artik ifadelerini duzeltmis olman gerekiyor:
“Neden 7<9 and "m"
ifadesinin degeri "m"
”
Cevap dil kurallarinda bir yerde gizli.
Hayir, bu ifade e = (7<9 and "m")
gibi parse ediliyor ve e
degiskenine atama and
ifadesi degerlendirilmeden olmuyor.
Bu “x = x or default_value
” gibi ifadeleri mumkun kilmak icin tasarlanmis bir ilginclik ve kullanimi code review’da azar yeme sebebi.