なぜpythonでは、クラスに__getitem__を定義すると反復可能になるのですか?
2023-11-13 06:27:14
質問
なぜクラスに __getitem__ を定義すると反復可能になるのでしょうか?
例えば私が書いたら
class b:
def __getitem__(self, k):
return k
cb = b()
for k in cb:
print k
出力が出る。
0
1
2
3
4
5
6
7
8
...
本当は"for k in cb:"からエラーが返ってくることを期待したいところですが。
どのように解決するのですか?
もし、あなたが PEP234 でイテレータを定義すると、こう書いてあります。
1. An object can be iterated over with "for" if it implements
__iter__() or __getitem__().
2. An object can function as an iterator if it implements next().
関連
-
[解決済み] Pythonで、あるオブジェクトが反復可能かどうかを判断するにはどうしたらいいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み] print()を使用してクラスのインスタンスを表示するには?
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] pycharmがタブをスペースに自動変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 基本的なイテレータを作るには?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する