调试模式中的numpy数组赋值

时间:2018-06-02 10:18:08

标签: numpy debugging variable-assignment

我在Python 3.6.4和Numpy 1.14.1中有一个非常奇怪的问题。我在调试器模式下将Numpy数组分配给变量“a”(不起作用),并在我使用另一个变量时工作,例如“x”。我已经意识到作业是从“d”开始的。这是为什么?此问题发生在调试模式下。提前感谢您的任何线索。请参阅控制台输出。 卡洛斯

(Pdb) a = np.array([[1,2], [2,3]])
(Pdb) a
(Pdb) x = np.array([[1,2], [2,3]])
(Pdb) x
array([[1, 2],
       [2, 3]])
(Pdb) b = np.array([[1, 6]])
*** The specified object '= np.array([[1' is not a function or was not found along sys.path.
(Pdb) x = np.array([[1, 6]])
(Pdb) x
array([[1, 6]])
(Pdb) type(a)
*** NameError: name 'a' is not defined
(Pdb) type(x)
<class 'numpy.ndarray'>

1 个答案:

答案 0 :(得分:1)

您需要说p a来打印a。有些东西是调试器关键字,它只是pdb的一个怪癖,它允许您打印名称不会与任何调试器命令冲突的变量。某些名称(如b)在调试器本身中非常常用,因此它不认为您是指引用变量。您可以使用!命令说出&#34;执行以下Python代码,&#34;像这样:

(Pdb) ! a = np.array([[1,2], [2,3]])
(Pdb) p a

此处,显式使用调试器命令!(执行)和p(打印),而不是要求pdb猜出您所指的a(其中)假设您打算调用其内置的args命令。