Редактировать : О проблеме сообщалось в 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