python isinstance(obj,tpyes.GeneratorType)失败

python isinstance(obj,tpyes.GeneratorType)失败,python,generator,spacy,Python,Generator,Spacy,如果我分别选中typetypes.GeneratorType和generator对象text[0],两者都返回。但是,每当我使用isinstance(),它都会返回False。我做错了什么 import types import spacy nlp = spacy.load('en') text = [nlp(' '.join(docs)).sents] print(types.GeneratorType) Out[27]: <class 'generator'> prin

如果我分别选中type
types.GeneratorType
和generator对象
text[0]
,两者都返回
。但是,每当我使用
isinstance()
,它都会返回
False
。我做错了什么

import types
import spacy

nlp = spacy.load('en')
text = [nlp(' '.join(docs)).sents]

print(types.GeneratorType)

Out[27]: <class 'generator'>


print(text)
Out[28]: [<generator object at 0x000001F4407F8950>]

print(type(text[0]))
Out[29]: <class 'generator'>


print(isinstance(text[0], types.GeneratorType))
Out[30]: False
导入类型
进口空间
nlp=spacy.load('en')
text=[nlp(''.join(docs)).sents]
打印(类型.生成器类型)
出[27]:
打印(文本)
Out[28]:[]
打印(类型(文本[0]))
出[29]:
打印(isinstance(文本[0],类型.GeneratorType))
Out[30]:假

您的代码读起来有点混乱,因为变量
text
是一个包含生成器对象的列表。但我认为您在这里看到的是一个相当微妙的区别:在Python中

import types
import inspect

def generator_function():
    for i in range(100):
        yield i

generator = (i for i in range(100))

isinstance(generator_function, types.GeneratorType)  # False
isinstance(generator, types.GeneratorType)  # True

inspect.isgeneratorfunction(generator_function)  # True
inspect.isgeneratorfunction(generator)  # False

spaCy的
Doc.sents
属性是一个生成函数,用于生成句子跨度–用于实现。

对于
type(text[0])==types.GeneratorType
,您得到了什么?
types.GeneratorType是type(text[0])
?第二,你为什么要这样做?如果你显示的输出是正确的,那么我认为这肯定是可行的,我们不能直接测试它来复制它,尽管我怀疑
Out[27]
的存在。。。。还有更多代码我们看不到吗?你把这个当作独奏剧本了吗?