Bu AttributeError, değeri None olan bir şey üzerinde metot/özellik kullanmaya çalıştığında oluşur. None 'hiçbir şey' demektir.
Neden olur?
En sık neden: bir fonksiyonun yanlışlıkla None döndürmesi. Örneğin liste.sort() None döndürür; bunu bir değişkene atarsan o değişken None olur.
Hatalı kod
sirali = [3, 1, 2].sort() # sort() None dondurur
print(sirali[0]) # AttributeError/TypeError
Doğru kod
liste = [3, 1, 2]
liste.sort() # yerinde siralar
print(liste[0]) # 1
# ya da:
sirali = sorted([3, 1, 2]) # sorted() yeni liste dondurur
Kontrol listesi
- Bir metodun ne döndürdüğünü kontrol et; bazıları None döndürür.
- None olabilecek değeri kullanmadan önce
if x is not None:ile kontrol et. sort()yerinde sıralar (None),sorted()yeni liste döndürür.
Python derslerimizle adım adım pratik yapabilirsin.