1

タイプを識別するために hasattr() で使用する属性を選択するための優れたワンストップ ショップ Python リファレンスはありますか。

たとえば、次は文字列ではないシーケンスの場合です。

def is_sequence(arg):
    return (not hasattr(arg, "strip") and
            hasattr(arg, "__getitem__") or
            hasattr(arg, "__iter__")) 

最適なパターンをすばやく選択するためのしっかりとしたリファレンスがあるとよいでしょう。

4

2 に答える 2

5

コレクション モジュール( Python 3.3 ではcollections.abc )で既に作成されている仮想サブクラスを使用します。

何かが非文字列シーケンスであるかどうかを確認するには、次を使用します

from collections import Sequence    # collections.abc in Python 3.3
isinstance(arg, Sequence) and not isinstance(arg, basestring)    # str in Python 3
于 2012-09-18T16:36:47.680 に答える
1

適切な抽象基本クラスを使用します。

import collections
isinstance([], collections.Sequence) # ==> true
于 2012-09-18T16:38:16.800 に答える