Сброс переменной подчеркивания (`_`) в записной книжке Jupyter, работающей на ядре IPython - PullRequest
1 голос
/ 24 июня 2019

Редактировать : О проблеме сообщалось в GitHub .Я оставляю здесь вопрос на тот случай, если это поможет другим людям найти проблему (я не смог).


Я часто использую переменную _ для удобства при работе в блокноте Jupyter (возвращает результат последнего выполнения кода).Однако, когда _ используется в качестве заполнителя для неиспользуемой переменной (типичный вариант использования в Python), он прерывает первый вариант использования.

Обратите внимание, что это работает, как и ожидалось, в консоли IPython.Ниже, _ снова содержит последнее возвращенное значение после использования в качестве неиспользуемого заполнителя в цикле.

In [1]: 'value'
Out[1]: 'value'

In [2]: _
Out[2]: 'value'

In [3]: for _ in range(2):
   ...:     print('hello')
   ...:     
hello
hello

In [4]: _
Out[4]: 1

In [5]: 'value'
Out[5]: 'value'

In [6]: _
Out[6]: 'value'

Однако после запуска того же кода в записной книжке Jupyter _ будет всегда удерживаться 1 (последнее значение из цикла), независимо от того, какой будет последний вывод.Если я попытаюсь del _, то _ больше не будет доступной переменной.

Короче говоря, два использования переменной _ в столкновении Python в записной книжке Jupyter, но не в консоли IPython.Это всего лишь неудобство, но мне было бы интересно узнать, как его решить - или почему это так.


Редактировать :

$ python --version
Python 3.6.3 :: Anaconda, Inc.
$ ipython --version
6.5.0
$ jupyter notebook --version
5.6.0
...