在Python中,我有一个函数作为参数。该函数应返回一个字符串。但是,在某些情况下,该功能是一个发电机。有没有办法确定函数是否是生成器?
答案 0 :(得分:1)
我猜你有一个函数有时会返回一个字符串,有时候是一个生成器(或者甚至是另一种迭代器)而不是单字符串。 (或者,也许,有时候你有一个总是返回一个字符串的函数,有时候会产生一个产生字符的生成函数。但这并没有多大区别。)
如果这是真的,那么可能没有理由首先检查。你可以得到一个字符串,循环字符等,而不必知道你得到了哪一个:
s = ''.join(my_function())
for ch in my_function():
do_something_with_char(ch)
(如果我猜错了,这个答案可能与你的问题完全无关。)
答案 1 :(得分: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):