0

Python では、関数をパラメーターとして持つ関数があります。この関数は文字列を返すことが期待されています。ただし、関数がジェネレータである場合もあります。関数がジェネレーターかどうかを判断する方法はありますか?

4

2 に答える 2

1

時々文字列を返す関数があり、時には単一文字の文字列に対してジェネレーター (または別の種類のイテレーター) を返す関数があると思います。(または、常に文字列を返す関数がある場合もあれば、文字を生成するジェネレーター関数がある場合もあります。しかし、それは大きな違いはありません。)

それが本当なら、そもそもチェックインする理由はないでしょう。どちらを取得したかを知らなくても、文字列を取得したり、文字をループしたりできます。

s = ''.join(my_function())

for ch in my_function():
    do_something_with_char(ch)

(私の推測が間違っていた場合、この回答はあなたの質問とはまったく関係がないかもしれません。)

于 2013-10-18T00:20:44.743 に答える
0

どうですか

if not isinstance(result,basestring):
    #its not a string type object so it must be a generator

また

import types
if isinstance(result,types.GeneratorType):
于 2013-10-17T23:57:53.253 に答える