如何在 Python 模块中列出所有函数?


在本文中,我们将讨论如何列出 Python 模块中的所有函数。

一个 Python 模块 包含多个不同的函数,这些函数允许广泛的代码重用,使复杂代码变得简单。它还通过将平台相关代码更改为平台无关的 API 来增强 Python 程序的可移植性。

Python 标准库包含用 C 编写的模块,这些模块提供对系统功能的访问,以及用 Python 编写的模块,这些模块为日常问题提供通用解决方案,使程序员的生活变得轻松,因为它可以防止为简单问题编写冗长的代码。

使用 dir() 获取模块中的函数

Python 的 dir() 函数 用于显示模块中所有函数和变量的名称。该函数会产生最相关的结果,而不是完整的结果,因为它列出了公共函数和非公共函数。

示例

以下代码给出了使用 dir() 获取 math 模块的相关函数的示例。

# Importing math module
import math as mt

# Printing all the functions in math module using dir
print(dir(mt))

输出

输出显示了 math 模块中最相关的函数。

['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

使用 __all__ 获取模块中的函数

__all__ 提供了所有公共函数的列表,这些函数在使用 import * 时导入。它提供了所有前面没有下划线 (_) 的函数。未定义 __all__ 的模块如果用户尝试获取该模块中的函数,则会抛出 AttributeError

示例

以下代码演示了如何使用 __all__ 在 re 模块中显示不同的函数。

# Importing re module
import re

# Printing different functions in re module
print(re.__all__)

输出

输出提供了 re 模块中存在的不同函数。

['match', 'fullmatch', 'search', 'sub', 'subn', 'split', 'findall', 'finditer', 'compile', 'purge', 'template', 'escape', 'error', 'Pattern', 'Match', 'A', 'I', 'L', 'M', 'S', 'X', 'U', 'ASCII', 'IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE', 'UNICODE']

使用 inspect 获取模块中的函数

Python 的 inspect 库可用于获取任何模块下的函数。 getmembers() 函数获取模块内的所有函数和变量,然后 isfunction 过滤器仅显示函数。与 dir() 不同,使用 inspect 可以显示模块中的所有函数。

示例

下面给出的代码展示了在 inspect 库中使用 getmembers()isfunction 获取模块函数的方法。

# Importing getmembers and isfunction from inspect
from inspect import getmembers, isfunction

# Importing math module
import math as mt

# Printing all the functions in math module
print(getmembers(mt), isfunction)

输出

输出列出了 math 模块中存在的所有函数。

[('__doc__', 'This module provides access to the mathematical functions\ndefined by the C standard.'), ('__loader__', <class '_frozen_importlib.BuiltinImporter'>), ('__name__', 'math'), ('__package__', ''), ('__spec__', ModuleSpec(name='math', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in')), ('acos', <built-in function acos>), ('acosh', <built-in function acosh>), ('asin', <built-in function asin>), ('asinh', <built-in function asinh>), ('atan', <built-in function atan>), ('atan2', <built-in function atan2>), ('atanh', <built-in function atanh>), ('ceil', <built-in function ceil>), ('comb', <built-in function comb>), ('copysign', <built-in function copysign>), ('cos', <built-in function cos>), ('cosh', <built-in function cosh>), ('degrees', <built-in function degrees>), ('dist', <built-in function dist>), ('e', 2.718281828459045), ('erf', <built-in function erf>), ('erfc', <built-in function erfc>), ('exp', <built-in function exp>), ('expm1', <built-in function expm1>), ('fabs', <built-in function fabs>), ('factorial', <built-in function factorial>), ('floor', <built-in function floor>), ('fmod', <built-in function fmod>), ('frexp', <built-in function frexp>), ('fsum', <built-in function fsum>), ('gamma', <built-in function gamma>), ('gcd', <built-in function gcd>), ('hypot', <built-in function hypot>), ('inf', inf), ('isclose', <built-in function isclose>), ('isfinite', <built-in function isfinite>), ('isinf', <built-in function isinf>), ('isnan', <built-in function isnan>), ('isqrt', <built-in function isqrt>), ('ldexp', <built-in function ldexp>), ('lgamma', <built-in function lgamma>), ('log', <built-in function log>), ('log10', <built-in function log10>), ('log1p', <built-in function log1p>), ('log2', <built-in function log2>), ('modf', <built-in function modf>), ('nan', nan), ('perm', <built-in function perm>), ('pi', 3.141592653589793), ('pow', <builtin function pow>), ('prod', <built-in function prod>), ('radians', <built-in function radians>), ('remainder', <built-in function remainder>), ('sin', <built-in function sin>), ('sinh', <built-in function sinh>), ('sqrt', <builtin function sqrt>), ('tan', <built-in function tan>), ('tanh', <built-in function tanh>), ('tau', 6.283185307179586), ('trunc', <built-in function trunc>)] <function isfunction at 0x7f6c72305940>

更新于: 2023年8月26日

41K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告