関数、文字列、コンパイルされた正規表現、Hamcrest Matcherなど、さまざまなタイプの入力を受け取り、入力のタイプに基づいてリストを適切にフィルタリングする関数があります。
現在は を使用していますisinstance(our_filter, hamcrest.matcher.Matcher)
が、これには Hamcrest をインストールする必要があります。
で文字列一致を使用することを検討していますinspect.getmro(type(POSSIBLE_MATCHER))
。しかし、これは不潔に感じます。import ステートメントの前後にtry
/を含むオプションがある場合もあります。except
最善のアプローチは何ですか?
@dblslash の助けを借りて、これは私がこれまでに得た最高のものです。
[x.__module__+"."+x.__name__ for x in inspect.getmro(type(POSSIBLE_MATCHER))]
['hamcrest.core.core.isequal.IsEqual', 'hamcrest.core.base_matcher.BaseMatcher', 'hamcrest.core.matcher.Matcher', 'hamcrest.core.selfdescribing.SelfDescribing', '__builtin__.object']