>>> non_iterable = 1
>>> 5 in non_iterable
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> class also_non_iterable:
... def __contains__(self,thing):
... return True
>>> 5 in also_non_iterable()
True
>>> isinstance(also_non_iterable(), Iterable)
False
in
キーワードが本当に欲しいときに反復可能なオブジェクトを望むという主張は、__contains__
を実装するオブジェクトですか?なぜ 'in'キーワードはiterableオブジェクトが必要だと主張していますか?
意味があります。私は、エラーメッセージが少し正確ではないと思います。 –
必ずしもそうではありません。あなたが最初に含まれているとしようとした場合、失敗し、次に反復に落ちていた場合、次に反復ビットは例外がバブルアップするところです。したがって、メッセージングは回復不可能なエラーの点と一貫しています。 –
そして、それはドキュメントでも言及されています。*反復中に例外が発生した場合、例外が発生したようです。 –