Похоже, ошибка.
* РЕДАКТИРОВАТЬ: Поведение, кажется, зависит от версии. Наиболее надежный обходной путь должен заключаться в определении десятичной точности в каждой ячейке, в которой вам необходимо ее применить, или в переносе определений точности во внешние модули.
Я выполнил некоторые действия по устранению неполадок, и вот что я нашел *:
- Если вы только что запустили Jupyter,
getcontext().prec = x
ведет себя нормально. - Если вы используете Run> «Run All Cells», поведение также нормальное.
- Если вы перезапустите ядро в пользовательском интерфейсе Jupyter, точность сбрасывается до 28 между ручными выполнениями ячеек.
Я сообщил об ошибке в Jupyter - https://github.com/jupyter/notebook/issues/5260
В качестве простого, но некрасивого обходного пути, определение getcontext().prec = 1
в каждой ячейке, к которой вы хотите применить точность, похоже, заставляет Jupyter использовать это.
Или - это довольно странно - выполнение этой команды в любой ячейке появляется установить точность для всего ноутбука после его запуска. Поместите его в верхнюю часть вашего nb, и все будет хорошо:
!jupyter notebook --version
Наконец, импортированные модули должны работать нормально. Если вы go этот маршрут, я мог бы предложить использовать что-то вроде пакета 'nbdev', чтобы упростить процесс создания модулей из записных книжек - это упрощает организацию, чем копирование / вставка из записных книжек.