0

In Python, I have a function that has a function as a parameter. The function is expected to return a string. However, in some cases, the function is a generator. Is there a way to determine if a function is a generator or not?

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 回答