Когда использовать отладчик Python

  1. Поскольку это запрещено спецификацией языка Java JLS 8.4.4 Общие методы , Переменные типа JLS 4.4 :

    The [ 110] до того, как тип возвращаемого значения метода называется «Переменная типа», а для переменных типа допускается только extends.

  2. Потому что это не имеет смысла. Если метод работает для некоторого типа T и всех его супертипов (включая Object), почему он не должен работать и для всех других типов?

    Если объявление будет разрешено, все ваши Метод знал бы о src, что он содержит какой-то Object. В частности, нельзя предположить, что src содержит какие-либо виды Number с. Но нужно предположить, что src содержит Object с побеждает цель универсальных, то есть разрешить типобезопасные операции над объектами неизвестного конкретного типа.

5
задан crystalattice 8 October 2008 в 07:49
поделиться

5 ответов

Я использую pdb для основной отладки Python. Некоторые ситуации, я использую его:

  • Когда Вы имеете цикл, выполняющий итерации более чем 100 000 записей, и хотите повредиться в отдельном моменте, это становится действительно полезным. (условные разрывы)
  • Проследите поток управления чужого кода.
  • Всегда лучше для использования отладчика, чем мусор код с печатью.
  • Обычно может быть больше чем одна точка отказов, приводящих к ошибке, все не очевидны в первом взгляде. Таким образом, Вы ищете очевидные места, если ничто не неправильно там, Вы возглавляете и добавляете еще некоторую печать.. отладчик может сэкономить Вам время здесь, Вы не должны добавлять печать и работать снова.
7
ответ дан 18 December 2019 в 06:36
поделиться

За 30 лет программирования я использовал отладчик точно 4 раза. Все четыре раза должны были читать core файл произвел из программы C, отказывающей для определения местоположения traceback информации, это прокладывается под землей там.

Я не думаю, что отладчики помогают многому, даже на скомпилированных языках. Многие люди как отладчики, существуют некоторые причины использования их, я уверен, или люди не расточали бы такую любовь и уход на них.

Вот точка - программное обеспечение является получением знаний.

Да, это действительно должно работать. Что еще более важно, однако, программное обеспечение имеет значение.

Это не обвинительный акт Вашего использования отладчика. Однако я нахожу, что люди, которые полагаются на отладку, будут иногда производить действительно нечетно выглядящий код и не будут иметь хорошего выравнивания для того, что это означает. Они могут только сказать, что "это может быть взлом, но это работает".

Мое предложение на отладчиках, "не беспокоятся".

"Но, что, если я полностью озадачен?" Вы спрашиваете, "я должен изучить отладчик затем?" Полностью озадаченный, какой? Язык? Python, слишком простой для чрезвычайного оглупления. Некоторая библиотека? Возможно.

Вот то, что Вы делаете - с или без отладчика.

  1. Вы имеете источник, читаете его.
  2. Вы пишете маленькие тесты для осуществления библиотеки. Используя интерактивную оболочку, если это возможно. [Все действительно хорошие библиотеки, кажется, показывают свои функции с помощью интерактивного режима Python - я борюсь за этот уровень трудной, ясной простоты.]
  3. Вы имеете источник, добавляете функции печати.
8
ответ дан 18 December 2019 в 06:36
поделиться

Обычно, когда ошибка прокладывается под землей в некоторой функции, но я не знаю точно какой или где. Любой я вставляю десятки log.debug() вызовы и затем должны забрать их или просто вставить:

import pdb
pdb.set_trace ()

и затем запущенный программа. Отладчик запустится, когда он достигнет той точки, и дайте мне полный REPL для ввода по абсолютному адресу вокруг в.

6
ответ дан 18 December 2019 в 06:36
поделиться

Любое время Вы хотите осмотреть содержание переменных, которые, возможно, вызвали ошибку. Единственным путем можно сделать, который должен остановить выполнение и смотреть на стек.

pydev в Eclipse является довольно хороший IDE при поиске того.

2
ответ дан 18 December 2019 в 06:36
поделиться

Я нахожу очень полезным заскочить в отладчик в провальном тестовом сценарии.

Я добавляю import pdb; pdb.set_trace() незадолго до места ошибки теста. Тестовые прогоны, создавая потенциально довольно большой контекст (например, импортируя приспособление базы данных или создавая Запрос HTTP). Когда тест достигает pdb.set_trace() строка, это заскакивает в интерактивный отладчик, и я могу осмотреть контекст, в котором отказ происходит при обычных командах pdb, ища подсказки относительно причины.

1
ответ дан 18 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: