Itertools.product提出“参数错误”

时间:2016-08-06 16:18:06

标签: python python-3.x ipython itertools ipdb

我在这里有点迷失:

我无法在代码中使用itertools.product。这是unittest setUp方法的一个断点:

ipdb> import itertools
ipdb> itertools
<module 'itertools' (built-in)>
ipdb> itertools.product
<class 'itertools.product'>
ipdb> list(itertools.product([2,7], [1,4]))
*** Error in argument: '(itertools.product([2,7], [1,4]))'

我很确定我没有对模块本身做任何奇怪的事情,因为这是在我的代码库中(没有非常见的变化):

$ git grep itertools
simple_wbd/climate.py:import itertools

如果我在Ipython解释器中尝试这个,它可以正常工作。

In [1]: import itertools

In [2]: list(itertools.product([2,7], [1,4]))
Out[2]: [(2, 1), (2, 4), (7, 1), (7, 4)]

我甚至不知道如何调试它。任何帮助都会很好。

谢谢。

1 个答案:

答案 0 :(得分:7)

在此调试器中,list是一个命令。要访问您想要的内置名称,请添加一个exclam:

ipdb> list(itertools.product([2,7], [1,4])
*** Error in argument: '(itertools.product([2,7], [1,4])'
ipdb> !list(itertools.product([2,7], [1,4]))
[(2, 1), (2, 4), (7, 1), (7, 4)]

这不应该是代码本身的问题,只能在调试器中出现。