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