2009-07-21 64 views

回答

5

the page it says底部:

注:math模块主要由周围的平台的C math库函数薄包装。特殊情况下的行为由C标准松散地指定,并且Python从平台C实现中继承了其大部分功能错误报告行为。因此,在错误情况下提出的具体例外(甚至是否有一些论据被认为是非常特殊的)没有以任何有用的跨平台或交叉发布方式进行定义。例如,math.log(0)是否返回-Inf或提出ValueErrorOverflowError未定义,并且在math.log(0)提高OverflowError,math.log(0L)可能会提高ValueError

所有函数返回一个安静的NaN,如果参数的个数至少一个是NaN。信号NaN会引发异常。异常类型依赖于平台和libm实现。它通常ValueError是为EDOMOverflowErrorerrno ERANGE

改变在2.6版本:在早期版本的Python的操作的结果与NaN作为输入依赖于平台和libm实施。

+0

这是否意味着Python使用当前平台的实现math.h中吗? – Paradius 2009-07-21 17:26:33

2

Python使用C库是对链接。在Windows上,没有'平台C库'..实际上在任何版本上都有多个版本的MicrosoftCRunTimeLibrarys(MSCRT)。