Python: Apa "TypeError 'xxx' objek tidak dapat dipanggil " artinya?

Sebagai pengembang pemula dalam Python, saya telah melihat pesan kesalahan ini berkali-kali muncul di konsol saya, tetapi saya tidak sepenuhnya mengerti apa artinya.

Adakah yang bisa memberi tahu saya, secara umum, tindakan seperti apa yang menghasilkan kesalahan ini?

Larutan

Kesalahan itu terjadi ketika Anda mencoba memanggil, dengan (), sebuah objek yang bukan callable.

Objek yang dapat dipanggil dapat berupa fungsi atau kelas (yang mengimplementasikan metode __call__). Menurut Python Docs:

object.call(self[, args...]): Dipanggil ketika instance "dipanggil" sebagai fungsi

Sebagai contoh:

x = 1
print x()

x bukan objek yang dapat dipanggil, tetapi anda mencoba memanggilnya seolah-olah objek tersebut adalah objek tersebut. Contoh ini menghasilkan error:

TypeError: 'int' object is not callable

Untuk pemahaman yang lebih baik tentang apa itu callable object baca jawaban ini di postingan SO yang lain.

Komentar (0)

Tindakan ini terjadi ketika Anda mencoba memanggil objek yang bukan fungsi, seperti dengan (). Sebagai contoh, ini akan menghasilkan error:

>>> a = 5
>>> a()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'int' object is not callable

Instance kelas juga dapat dipanggil jika mereka mendefinisikan sebuah metode __call__

Salah satu kesalahan umum yang menyebabkan kesalahan ini adalah mencoba mencari elemen daftar atau kamus, tetapi menggunakan tanda kurung bukan tanda kurung siku, misalnya (0) bukan [0]

Komentar (0)

Pengecualian akan muncul ketika Anda mencoba memanggil objek yang tidak dapat dipanggil. Objek yang dapat dipanggil adalah (fungsi, metode, objek dengan __call__)

>>> f = 1
>>> callable(f)
False
>>> f()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'int' object is not callable
Komentar (0)