Существует глобальный контекст, но вам не нужно его использовать.Вы можете создавать дополнительные контексты и использовать их либо явно для каждой операции:
z = ctx.add(x, y)
b = a.ln(ctx)
, либо установив временный локальный контекст с помощью decimal.localcontext
:
with decimal.localcontext(ctx):
z = x + y
b = a.ln()
ПервыйЭтот параметр с меньшей вероятностью попадет в операции, которые вам не нужны, например, в библиотечные подпрограммы или сопрограммы, тогда как второй параметр снижает вероятность случайного отключения контекста от операции, когда вам нужно выполнить кучу операций с помощьютот же контекст.По крайней мере, контекст не попадет в другие потоки, потому что каждый поток имеет свой текущий контекст.