mirror of
https://github.com/python/cpython.git
synced 2025-08-26 03:34:43 +00:00
SF patch 483059: Avoid use of eval() in random.py, from Finn Bock.
_verify(): Pass in the values of globals insted of eval()ing their names. The use of eval() was obscure and unnecessary, and the patch claimed random.py couldn't be used in Jython applets because of it.
This commit is contained in:
parent
652e1917c6
commit
dc47a89ff1
1 changed files with 5 additions and 6 deletions
|
@ -82,24 +82,23 @@ __all__ = ["Random","seed","random","uniform","randint","choice",
|
|||
"stdgamma","gauss","betavariate","paretovariate","weibullvariate",
|
||||
"getstate","setstate","jumpahead","whseed"]
|
||||
|
||||
def _verify(name, expected):
|
||||
computed = eval(name)
|
||||
def _verify(name, computed, expected):
|
||||
if abs(computed - expected) > 1e-7:
|
||||
raise ValueError(
|
||||
"computed value for %s deviates too much "
|
||||
"(computed %g, expected %g)" % (name, computed, expected))
|
||||
|
||||
NV_MAGICCONST = 4 * _exp(-0.5)/_sqrt(2.0)
|
||||
_verify('NV_MAGICCONST', 1.71552776992141)
|
||||
_verify('NV_MAGICCONST', NV_MAGICCONST, 1.71552776992141)
|
||||
|
||||
TWOPI = 2.0*_pi
|
||||
_verify('TWOPI', 6.28318530718)
|
||||
_verify('TWOPI', TWOPI, 6.28318530718)
|
||||
|
||||
LOG4 = _log(4.0)
|
||||
_verify('LOG4', 1.38629436111989)
|
||||
_verify('LOG4', LOG4, 1.38629436111989)
|
||||
|
||||
SG_MAGICCONST = 1.0 + _log(4.5)
|
||||
_verify('SG_MAGICCONST', 2.50407739677627)
|
||||
_verify('SG_MAGICCONST', SG_MAGICCONST, 2.50407739677627)
|
||||
|
||||
del _verify
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue