У меня есть проект Python, использующий PyDev в Eclipse, и PyDev продолжает генерировать ложные ошибки для моего кода. У меня есть модуль settings
, который определяет объект settings
. Я импортирую это в модуль b
и назначаю атрибут с помощью:
from settings import settings
settings.main = object()
В некоторых моих кодах, но не во всех, такие выражения, как:
from settings import settings
print settings.main
.. . генерировать сообщения «Undefined variable from import: main» в области ошибок кода Eclipse, даже если код работает без проблем. Как я могу исправить это?
Если нарушение доступа к памяти происходит только в том случае, если Studio не удается отобразить адрес метода, это может быть вызвано отсутствием отладочной информации. Вероятно, выполняется отладка кода, скомпилированного с флагами компилятора/компоновщика выпуска (не отладочного).
Попробуйте включить отладочные сведения в свойствах проекта C++, перестроить и перезапустить отладчик. Если это поможет, вы увидите все обычные отслеживаемые вещи, такие как стек, переменные и т.д.
-121--4817572- В базовом классе, от которого наследуются все страницы, просто переопределите свойство Master
, примерно так:
public new SiteMaster Master
{
get { return base.Master as SiteMaster ; }
}
или собственный вариант абатищева:
public new ISiteMaster Master
{
get { return base.Master as ISiteMaster; }
}
-121--4407381- Для кода в вашем проекте единственным способом является добавление объявления, говорящего, что вы ожидаете, что - возможно, защищено , если False
, чтобы он не выполнялся (статический код-анализ видит только то, что вы видите, а не информация о времени выполнения - если вы
Для преодоления этого существует несколько вариантов:
Если это какой-то внешний модуль, его можно добавить в принудительные сборки
, чтобы PyDev породил оболочку для получения информации о времени выполнения (см. http:// pydev.org/manual_101_interpreter.html для подробностей) - т.е. в основном PyDev импортирует модуль в оболочку и выполняет dir (модуль)
и dir
для классов, найденных в модуле, для представления завершений и выполнения анализа кода.
Вы можете использовать Ctrl + 1 (Cmd + 1 для Mac) в строке с ошибкой, и PyDev предоставит вам возможность добавить комментарий, чтобы игнорировать эту ошибку.
Можно создать модуль заглушки
и добавить его к предопределенным завершениям
( http://pydev.org/manual_101_interpreter.html также содержит подробную информацию об этом).