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!")