我在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'>
答案 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
命令。