実現したいこと
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 コメント