Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要检查某个变量是否是生成器对象。我将如何指定文字生成器类型来代替 ??? 以下?
def go(): for i in range(999): yield i la = go() print repr(type(la)) <type 'generator'> assert type(la) == ???
使用types.GeneratorType(来自types模块)。但是,您应该考虑一下为什么要这样做。通常最好避免显式类型检查并尝试迭代对象并查看它是否有效。
types.GeneratorType
types
import types assert isinstance(la, types.GeneratorType)
一般来说,你不会。您将查找名称为__iter__和的属性next,这两个函数都是函数。
__iter__
next