Как заставить PyCharm отображать глобальные переменные в консоли Python, которые фактически используются скриптом? - PullRequest
0 голосов
/ 02 февраля 2019

Я запускаю свой скрипт с помощью консоли 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.

...