Pythonのiterable


Pythonの勉強を始めた初心者です。Pythonのfor文ではinの後ろにはiterableオブジェクトを書けとの説明があります。しかしiterableではないset型がinの後ろに書けてしまいます。またfrozensetを生成するfrozen関数も引数はiterableとなっているのにset型でも生成できてしまいます。どのように考えたらよいのでしょうか。




`set`型、及び`frozenset`型は`iterable`です。以下のコードでTrueを表示するようなオブジェクトは`iterable`であるといえます。

[code]

    s = set()
    try:
        iterator = iter(s)
        print(True)
    except TypeError as e:
        print(False)
    
[/code]

`iterable` について [用語集 — Python 3.7.2
ドキュメント](https://docs.python.org/ja/3/glossary.html#term-iterable)  
`iter`について [組み込み関数 — Python 3.7.2
ドキュメント](https://docs.python.org/ja/3/library/functions.html#iter)

