2

我在这里有点迷路:

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

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)]

我什至不知道如何调试这个。你能帮忙的话,我会很高兴。

谢谢你。

4

1 回答 1

12

在这个调试器中,list是一个命令。要访问您想要的内置名称,请在前面加上感叹号:

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)]

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

于 2016-08-06T16:23:32.827 回答