相关疑难解决方法(0)

在Python中,有没有办法测试生成器对象以找出创建它的生成器?

给定一个生成器对象,是否可以测试它是否是由给定的生成器创建的?也许更好的说法,是否有可能测试我们的发电机的"类型"?由于生成器对象具有类型generator,因此使用typeisinstance不执行测试.

请考虑以下代码:

>>> def gen1():
...     yield 1
... 
>>> def gen2():
...     yield 2
... 
>>> g1 = gen1()
>>> g2 = gen2()
>>> 
>>> def do_something(f):
...     # need to know if f is a gen1 generator or a gen2 generator here
...     # isinstance(f, gen1)  raises a TypeError since gen1 is not a type
...     # type(f) is gen1 returns false
...     print(f)
... 
>>> do_something(g1)
<generator object gen1 at 0x100dcb370> …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
116
查看次数

标签 统计

python ×1