python "radians" 的源代码
python source code for "radians"
我需要将 x*pi/180.00
的 c 代码实现与 Python 的 radians(x)
相匹配,其中 x 以度为单位。我想查看 Python 的 radians 函数的源代码。我都试过了
print inspect.getsource(type(radians))
和
print getsource(radians)
没有成功。有什么想法吗?
inspect
只能从 python 中编写的模块中获取源代码。用 C 编写的模块(例如 math
)没有可用的源代码。话虽如此,CPython 的官方源代码在 github 上。 math.radians
生活在 Modules/mathmodule.c
并且实现非常简单(将浮点数乘以常数比例因子)。
来自 CPython 源代码(顺序不连续)
static const double degToRad = Py_MATH_PI / 180.0;
static const double radToDeg = 180.0 / Py_MATH_PI;
/*[clinic input]
math.radians
x: double
/
Convert angle x from degrees to radians.
[clinic start generated code]*/
static PyObject *
math_radians_impl(PyObject *module, double x)
/*[clinic end generated code: output=34daa47caf9b1590 input=91626fc489fe3d63]*/
{
return PyFloat_FromDouble(x * degToRad);
}
inspect 包的问题在于它仅适用于 Python 对象,而不适用于底层实现代码。
(3.14159265358979323846/180.0)
180.0/3.14159265358979323846
我需要将 x*pi/180.00
的 c 代码实现与 Python 的 radians(x)
相匹配,其中 x 以度为单位。我想查看 Python 的 radians 函数的源代码。我都试过了
print inspect.getsource(type(radians))
和
print getsource(radians)
没有成功。有什么想法吗?
inspect
只能从 python 中编写的模块中获取源代码。用 C 编写的模块(例如 math
)没有可用的源代码。话虽如此,CPython 的官方源代码在 github 上。 math.radians
生活在 Modules/mathmodule.c
并且实现非常简单(将浮点数乘以常数比例因子)。
来自 CPython 源代码(顺序不连续)
static const double degToRad = Py_MATH_PI / 180.0;
static const double radToDeg = 180.0 / Py_MATH_PI;
/*[clinic input]
math.radians
x: double
/
Convert angle x from degrees to radians.
[clinic start generated code]*/
static PyObject *
math_radians_impl(PyObject *module, double x)
/*[clinic end generated code: output=34daa47caf9b1590 input=91626fc489fe3d63]*/
{
return PyFloat_FromDouble(x * degToRad);
}
inspect 包的问题在于它仅适用于 Python 对象,而不适用于底层实现代码。
(3.14159265358979323846/180.0)
180.0/3.14159265358979323846