присвоение массивов в режиме отладки - PullRequest
0 голосов
/ 02 июня 2018

У меня очень странная проблема в Python 3.6.4 и Numpy 1.14.1.Я назначаю в режиме отладчика массив Numpy переменной «a» (не работает) и работает, когда я использую другую переменную, например, «x».Я понял, что задание работает от "д".Это почему?Эта проблема возникает в режиме отладки.Заранее спасибо за любую подсказку.Пожалуйста, смотрите консольные выводы.Карлос

(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 голосов
/ 02 июня 2018

Вы должны сказать p a, чтобы напечатать a.Некоторые вещи являются ключевыми словами отладчика, и это просто странная вещь pdb, позволяющая печатать переменные, имена которых не конфликтуют ни с какой командой отладчика.Некоторые имена, например b, так часто используются в самом отладчике, что он не думает, что вы имеете в виду обращение к переменной.Вы можете использовать команду !, чтобы сказать «Выполнить следующий код Python», например:

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

Здесь используются команды отладчика ! (выполнение) и p (печать)явно, вместо того, чтобы просить pdb угадать, какой a вы имели в виду (в этом случае предполагается, что вы намеревались вызвать его встроенную команду args).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...