[Python-Dev] Example for PEP 343

Raymond Hettinger python at rcn.com
Wed May 18 00:41:03 CEST 2005



> -----Original Message-----
> From: python-dev-bounces+python=rcn.com at python.org [mailto:python-dev-
> bounces+python=rcn.com at python.org] On Behalf Of Phillip J. Eby
> Sent: Tuesday, May 17, 2005 6:06 PM
> To: Michael Chermside; gvanrossum at gmail.com
> Cc: python-dev at python.org
> Subject: Re: [Python-Dev] Example for PEP 343
> 
> At 02:42 PM 5/17/2005 -0700, Michael Chermside wrote:
> 
> ># ===== SAMPLE #1: increasing precision during a sub-calculation
=====
> >
> >import decimal
> >
> >@do_template
> >def with_extra_precision(places=2):
> >     "Performs nested computation with extra digits of precision."
> >     decimal.getcontext().prec += 2
> >     yield None
> >     decimal.getcontext().prec -= 2
> 
> Won't this do the wrong thing if something within the block alters the
> precision?

Right.

It should save, alter, and then restore:

   oldprec = decimal.getcontext().prec
   decimal.getcontext().prec += 2
   yield None
   decimal.getcontext().prec = oldprec


Raymond Hettinger


More information about the Python-Dev mailing list