При импорте файла весь файл считывается и исполняется. Это то же самое, используете ли вы from file import function
или просто import file
.
Вы должны поместить любой код, который вы не хотите запускать, когда он импортирован, в блок, подобный этому:
if __name__ = '__main__':
your code here
Определения ваших функций, которые вы хотите импортировать, должны находиться за пределами этого блока, так как они должны быть загружены и выполнены, чтобы быть импортированными и доступными для использования.
См. этот дублирующий вопрос , который объясняет это более подробно.
, К сожалению, нет никакого способа видеть, который точно является виновным управлением, которое не добавляется правильно к иерархии управления.
существует!
Отключают "Просто мой код" в настройках отладки. И поймайте все вызванные исключительные ситуации (проверка, 'брошенная' для Общеязыковой среды выполнения в диалоговое окно, открытое Ctrl-Alt-E).
После того, как исключение происходит, перейдите к ближайшему стековому фрейму, где Объект управления доступен, и исследуйте его ClientID и родителей.
В более общем плане эта ошибка происходит, когда иерархия управления изменений страницы способом, который предотвращает платформу для загрузки состояния отображения. Механизм состояния отображения предполагает, что иерархия управления является тем же на загрузке, как это было, когда это было сохранено.
Это могло бы взгляд как случайная ошибка, потому что существуют случаи, когда изменение средств управления на странице не препятствует тому, чтобы состояние отображения загрузилось. Взгляните на своей странице и ищите средства управления, которые динамично создаются/удаляются. Удостоверьтесь, что любые средства управления добавляются к странице прежде , состояние отображения загружается (который был бы перед событием страницы Load).
, К сожалению, нет никакого способа видеть, который точно является виновным управлением, которое не добавляется правильно к иерархии управления. Распространенный способ видеть эту ошибку состоит в том, чтобы добавить некоторые динамические средства управления на событии (например, на выпадающем выбранном измененном индексе) - этот способ, которым их состояние сохраняется к состоянию отображения - но не добавляют их снова на обратной передаче - этот способ, которым состояние отображения недопустимо, потому что средства управления не делают существует больше, когда состояние отображения загружается.
Я столкнулся с этой ошибкой, это происходит, когда существует перекрестная обратная передача страницы.
, Например : Вы загружаете Представление A. Просмотрите прекрасные загрузки по любой причине условия, при котором Представлении загруженное, больше не существуют. Страница нейтрализации является Представлением B. Таким образом, пользователь заполняет форму выставленный для обозрения A и postsback. Так как условия A Представления больше не соблюдают, значения формы A Представления отправляются для Просмотра B.
Я видел эту ошибку при использовании gridview. Это произошло бы, когда взаимодействие с пользователем вызвало обратную передачу, прежде чем страница была сделана, представив полностью.
я полагаю, что это было зафиксировано в VS2005 SP1 как бы то ни было.
Вы, вероятно, можете воспроизвести это, остановив страницу до ее полной загрузки, и затем отправив обратную передачу. Если серверу не удалось получить полное состояние просмотра с сервера, то он не сможет воссоздать его при обратной передаче, отсюда и сбой.
Существует обходной путь для этой ошибки:
Установите свойство EnableViewstate всех динамически загружаемых элементов управления в false. Это не полное решение; здесь мы отключаем ViewState элементов управления, чтобы обойти эту ошибку.
Это решение может привести к появлению других ошибок, поэтому будьте осторожны при применении этого исправления.
У меня возникла эта ошибка, когда мои пользовательские элементы управления были случайно созданы в Page_Load(). Элементы управления должны динамически создаваться в OnInit().