Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.2 TypeError: 'list' object is not callable
Üldine:
Veateade TypeError: 'list' object is not callable tekib siis, kui järjendi elementi üritatakse väärtustada keelekonstruktsiooniliselt valesti.
Tuleb jälgida, et järjendite puhul kasutatakse indeksiga elementide otsimisel nurksulge, mitte ümarsulge.
Näide 1:
tooted = input("Sisestage tooted: ").split(',')
toode = int(input("Valige toote järjekorra number: "))
if 0 < toode <= len(tooted):
    print(tooted(toode - 1))
else:
    print("Tooteid pole piisavalt!")
Veateade kuvatakse, sest järjendi elemendi otsimisel kasutatakse ümarsulge:
>>> %Run Test.py
Sisestage tooted: leib, sai, piim
Valige toote järjekorra number: 2
Traceback (most recent call last):
  File "C:\Users\Kursus\Test.py", line 5, in <module>
    print(tooted(toode - 1))
TypeError: 'list' object is not callable
>>> 
Võimalik parandus:
Järjendi elemendi otimisel tuleks kasutada nurksulge.
Näide parandatud programmist:
tooted = input("Sisestage tooted: ").split(',')
toode = int(input("Valige toote järjekorra number: "))
if 0 < toode <= len(tooted):
    print(tooted[toode - 1])
else:
    print("Tooteid pole piisavalt!")