2016-08-06 50 views
1

Ich bin ein bisschen hier verloren:Itertools.product wirft "Fehler im Argument"

ich nicht itertools.product in meinem Code verwenden können. Dies ist in einem Bruchstelle in Unittest setUp Methode:

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

Ich bin ziemlich sicher, dass ich tue nichts komisch mit dem Modul selbst, da dies in meiner Code-Basis ist (keine uncommite Änderungen gibt):

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

Wenn ich dies in Ipython-Interpreter versuche, funktioniert es gut.

In [1]: import itertools 

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

Ich weiß nicht einmal, wie man das debuggt. Jede Hilfe wäre nett.

Vielen Dank.

Antwort

6

In diesem Debugger ist list ein Befehl. Für den Zugriff auf den eingebauten Namen, den Sie beabsichtigen, prepend eine 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)] 

Dies sollte kein Problem in dem Code selbst sein, nur innerhalb des Debuggers.