Я запускаю свой скрипт с помощью консоли Python в PyCharm и ожидаю, что он покажет глобальные переменные, которые используются самим сценарием.Но почему-то кажется, что он использует какой-то другой набор для работы с / другой областью действия / пространством имен.
Вот пример сценария:
def addb():
global b
b=1
def checkb():
print('b' in globals())
Я иду в «Выполнить> Редактировать конфигурации»..> myscript 'и установите флажок «Запускать с консоли Python», нажмите «Выполнить» - откроется консоль Python - установите флажок «Показать переменные», и справа появится список некоторых глобальных переменных.Затем я пишу в приглашении и получаю ответ:
>>>'b' in globals()
False
>>>checkb()
False
Все отлично, в списке переменных на правой панели также нет переменной 'b'.Затем я пишу и получаю этот ответ:
>>>addb()
>>>checkb()
True
>>>'b' in globals()
False
Кроме того, в правой части списка по-прежнему нет переменной 'b' в списке переменных.И это идет дальше, конечно.Эта переменная явно существует и имеет соответствующее значение для функций и методов внутри модуля, но не для консоли Python.Это самый очевидный пример такого поведения.Это идет дальше и приводит к нежелательным последствиям, когда я использую некоторые функции для изменения состояния глобальных переменных и использую их в консоли.Переменные изменяют свое значение «внутри» скрипта, но остаются в консольном состоянии и т. Д.
Я ожидаю, что все действительные глобальные переменные скрипта будут видны в списке переменных на правой панели.Python Console и быть доступным из консоли, так что
>>>addb()
>>>'b' in globals()
даст
True
Я проверил это непосредственно в собственной консоли Python с помощью
python -i test.py
и имел точното, что я ожидал получить, как я описал выше.Так что это точно проблема PyCharm Python Console.
Это выглядит как ошибка поведения, но я просто не могу поверить, что это слишком большой и очевидный, чтобы не заметить, поэтому я просто считаю, что что-то пропустил и решилсначала спросить здесь.Я не могу найти ничего, связанного с этим делом, в Google, поэтому я просто застрял здесь.Буду признателен за любое руководство или подтверждение его глючной природы, чтобы я мог поднять проблему.Пожалуйста, дайте мне знать, если вы не можете воспроизвести и эту проблему.
Я использую PyCharm 2018.3.4 (Community Edition) Build # PC-183.5429.31, построенный 29 января 2019 года и Python 3.7.2.