主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

イテレータとfor(Python)

                
tags:
「すべての変数、関数はオブジェクトである」
しっかりしたPythonの本にはそんなことが書かれている。ぼくはこのことがなんなのかさっぱりわからなかった。

さて、インタプリタに下記の通り打ち込んでみる。
>>> dir(16)
変数(プロパティ)や関数(メソッド)がいくつか表示されるだろう。もう一つついでに。
>>> dir("john Doe")
これらからわかるのは、適当につくった数値や文字列に、適当につくった時点でプロパティやメソッドができているということだ。このことが、「すべての変数、関数はオブジェクトである」ということを表している。


for文へ話をうつす。for文は基本的に以下のように書く。
>>>for x in object:
print x
objectとして受け付けることができるのはiter()に対応しているオブジェクトのみである。たとえばobjectとして数値を渡してみようとしてもそれはできない(for x in 4:)。iter(4)としてもやはりエラーが返る。for文に渡せるオブジェクトはiter()に対してなにか値を返すようにできている必要がある。このことを"イテラブル"という。イテラブルなオブジェクトは、リストや辞書型、文字列などである。以下もイテラブルといえるのだろうけど、for文につっこんではならない。
def garbage():
yield "x"

garbage()

##for x in garbage():
## print x

            

コメントの投稿

非公開コメント

プロフィール

Matoba

Author:Matoba

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。