如何列出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))
输出
输出显示了数学模块中最相关的函数。
['__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筛选出只显示函数。使用inspect可以显示模块中的所有函数,不像dir()只显示部分。
示例
下面的代码演示了使用 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>