1. ホーム
  2. python

python オブジェクトには '__getitem__' という属性がありません。

2022-02-18 19:58:23
<パス
class Animal(object):
        def __init__(self, name):
                self.name = name


a1 = Animal("panda")

print a1['name']


実行する場合

a1['name']

次のような質問が表示されます。

トレースバック (最も最近の呼び出し):
ファイル "test.py", 行 19, in
print a1['name']
TypeError: 'Animal'オブジェクトには属性がありません '. 取得項目 '

Tip は __gettiem__ を定義していません。

回避策

クラスに __gettiem__ メソッドを定義してください。

class Animal(object):
        def __init__(self, name):
                self.name = name

        def __getitem__(self, k):
                if k == 'name':
                        return self.name


a1 = Animal("panda")

print a1['name']

もう一度実行すると、次のような出力が得られます。

パンダ