In演算子で__getitem__を使ってTrue,Falseの判定をしたい

実現したいこと

In演算子で__getitem__を使ってTrue,Falseの判定をしたい

前提

pythonの学習をしていて、読んでいた本にin演算子は__contains__()を実装していないクラスの場合__iter__()→__getitem__()の順で利用すると書いてあったため、試しに__getitem__を用いた簡単なコードを書いてみました。

発生している問題・エラーメッセージ

windowsのコマンドプロンプトで実行しているのですが、1123を出力した後処理が進まなくなります

該当のソースコード

Python

1class tst:2 def __init__(self):3 self.a = {}4 def __setitem__(self, word, value):5 self.a[word] = value 6 def __getitem__(self, word):7 return self.a.get(word, None)8 9hello = tst()10hello["good"] = 112311print(hello["good"])12if "good" in hello:13 print("test")14else:15 print("None")16

試したこと

in演算子について色々と調べてみたのですが、明確な答えを見つけられませんでした。またオンラインでコードを実行できるサービスを使ってみたところtimeoutエラーが出てしまい、ループ等してしまってるのかとも考えたのですが、よくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント