python isinstance(obj,tpyes.GeneratorType)失败
如果我分别选中typepython 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
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]
的存在。。。。还有更多代码我们看不到吗?你把这个当作独奏剧本了吗?