web-dev-qa-db-ja.com

TypeError: 'builtin_function_or_method'オブジェクトは添字付けできません

Elif( listb[0] == "-test"):
    run_all.set("testview")
    listb.pop[0]

[〜#〜] error [〜#〜]:Tkinterコールバックトレースバックの例外(最新の呼び出しが最後):ファイル "/tools/python/2.7.2/lib/python2.7/lib- tk/Tkinter.py "、行1410、call return self.func(* args)ファイル" ./edit.py "、行581、populate listb.pop [0] TypeError: ' builtin_function_or_method 'オブジェクトは添字付けできません

行番号581は、上記のコードの最後のpopステートメントで表されています。 run_allはStringVarです。

このエラーが発生する理由と解決方法を教えてください。

20
Ani

欲しいと思う

listb.pop()[0]

表現 listb.popは、有効なpython式であり、popメソッドへの参照になりますが、実際にはそのメソッドを呼び出しません。開き括弧と閉じ括弧を追加する必要があります。メソッドを呼び出します。

28
srgerg

リストまたはタプルのようにポップにアクセスしようとしていますが、うんちはそうではありません。これはメソッドです。

6
c0m4

誤って括弧ではなく括弧を入力したようです。

4
Aamir M Meman

listb.pop[0]と書く代わりに

listb.pop()[0]
         ^
         |
4
a ghost

このエラーは、pop操作で角かっこを使用しない場合に発生します。この方法でコードを記述します。

listb.pop(0)

これは有効なpython式です。

1
Tushar Palawat

参考までに、これは投稿に対する回答ではありません。ただし、次のメッセージでエラーが発生する可能性がある将来のユーザーには役立つ場合があります。

TypeError: 'builtin_function_or_method'オブジェクトは添字付けできません

私の場合、インデントが悪いために発生しました。

コード行をインデントするだけで問題は解決しました。

0