2

如果我有一个名为“math”的模块可以称为导入“math”,那么我如何获得与“math”相关的所有内置函数的列表

4

3 回答 3

4

有一个dir函数,它列出了对象的所有(嗯,几乎)属性。但是只过滤函数不是问题:

 >>>import math
 >>>dir(math)
 ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
 >>>
 >>>[f for f in dir(math) if hasattr(getattr(math, f), '__call__')] # filter on functions
 ['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

您可能会发现Python 自省指南是一个有用的资源,以及这个问题:如何检测 Python 变量是否是函数?.

于 2013-10-22T09:16:32.807 回答
3

这就是help()派上用场的地方(如果您更喜欢人类可读的格式):

>>> import math
>>> help(math)
Help on built-in module math:

NAME
    math

<snip> 

FUNCTIONS
    acos(...)
        acos(x)

        Return the arc cosine (measured in radians) of x.

    acosh(...)
        acosh(x)

        Return the hyperbolic arc cosine (measured in radians) of x.

    asin(...)
<snip>
于 2013-10-22T09:16:54.800 回答
2

仅适用于内置函数:

from inspect import getmembers, isfunction

functions_list = [o for o in getmembers(my_module, isfunction)]
于 2013-10-22T09:18:10.230 回答