Python:eval()将值强制转换为浮点数?

Mar*_*son 8 python eval

有没有办法执行类似eval的函数,将其值强制转换为浮点值?我希望

eval('1/3')
Run Code Online (Sandbox Code Playgroud)

并让它返回浮点值.333333而不是整数值0.

Ign*_*ams 14

获取编译器标志__future__.division,传递它和您的代码compile(),然后eval()在返回的代码对象上运行.

(注意mh)这具有不改变全局分割操作的附加优点,这可能会产生意想不到的副作用.(尾注)

>>> import __future__
>>> eval(compile('1/3', '<string>', 'eval', __future__.division.compiler_flag))
0.33333333333333331
Run Code Online (Sandbox Code Playgroud)


kin*_*all 6

你的问题是:我怎么能让Python默认进行浮点除法.答案是:

from __future__ import division
Run Code Online (Sandbox Code Playgroud)