确定python函数是否是生成器

时间:2013-10-17 23:54:03

标签: python reflection generator

在Python中,我有一个函数作为参数。该函数应返回一个字符串。但是,在某些情况下,该功能是一个发电机。有没有办法确定函数是否是生成器?

2 个答案:

答案 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):