收益率返回一个集合。Iterable但是许多类型也是Iterable

def aaaa():
    yield 1
    yield 2
    yield 3

d = aaaa()

print(d,type(d),isinstance(d, collections.Iterable))

打印类型
<generator object aaaa at 0x0000000002626B88> <class 'generator'> True

我找不到“生成器”类,或者我无法进行类型检查。

最佳答案

如果要检查iterable是否为生成器对象:

import types
isinstance(aaaa(), types.GeneratorType) # ==> True

如果要检查函数是否包含yield语句(即函数是生成器):
import inspect
inspect.isgeneratorfunction(aaaa) # ==> True

10-08 16:52