python オブジェクトが反復可能でない
2022-02-21 23:29:57
オブジェクトはforループで走査することができ、これをIterationと呼ぶ。
例えば、次のようなコードです。
class Animal(object):
def __init__(self, name):
self.name = name
a1 = Animal("panda")
for one in a1:
print one
実行時に以下のエラーが発生します。
<ブロッククオート
トレースバック (最も最近の呼び出し):
ファイル "test.py", 行 16, in <\module>
for one in a1:
TypeError: 'Animal'オブジェクトはイテレート可能ではありません。
解決策
イテラブルにするために、nextメソッドだけでなく、__iter__メソッドをクラスに定義する必要があります。
class Animal(object):
def __init__(self, name):
self.name = name
self.age = 12
self._i = 0
def __iter__(self):
return self
def next(self):
if self._i == 0:
self._i += 1
return self.name
elif self._i == 1:
self._i += 1
return self.age
else:
raise StopIteration()
a1 = Animal("panda")
for one in a1:
print one
を出力します。
パンダ
12
再度実行すると、forループはa1オブジェクトのプロパティを順番に表示する。
関連
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】ImportError: django.core.urlresolvers' という名前のモジュールがない。
-
[解決済み】python flask インポートエラー
-
python 2.7 で md5 暗号化で発生した問題 (TypeError: Unicode-objects must be encoded before hashing)
-
[解決済み] Pythonの円形リストイテレータ
-
[解決済み] ValueError: データがバイナリでなく、pos_label が指定されていない。
-
[解決済み] jinja2 テンプレートでリストの長さを取得する
-
[解決済み] PIPインストールで、libffiは認識されるのに、ffi.hが見つからない。
-
[解決済み] AtributeError: 'module' オブジェクトに 'plt' 属性がない - Seaborn
-
[解決済み] 文字列の中の文字が文字であるかどうかを調べるには?(Pythonの場合)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み】 Regex: AttributeError: 'NoneType' オブジェクトには 'groups' という属性がありません。
-
[解決済み] ValueError: 解凍するために0個以上の値が必要(pythonのリスト)
-
[解決済み] scikit-learnのcross_val_predictの精度スコアはどのように計算されるのですか?
-
[解決済み] ムービーライター ffmpeg は使用できません。代わりに <class 'matplotlib.animation.PillowWriter'> を使用しようとしています。
-
[解決済み] x = os.system(...)の戻り値 [重複]。
-
[解決済み] spyder - メモリから変数と一緒に変数エクスプローラをクリアします。
-
[解決済み] Pythonでvtkをstlに変換する方法は?
-
[解決済み] Pythonプロジェクトに.gitignoreファイルを追加するためのベストプラクティス?[クローズド]。
-
Python の open() でファイルを読み込む際の Unicode エンコーディングの問題