gpt4 book ai didi

python - 如何获取某个.py文件中定义的所有函数?

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:25 25 4
gpt4 key购买 nike

通过inspect和importlib库,我们可以获取.py文件中的所有函数。

import importlib
import inspect

my_mod = importlib.import_module("mymod")
all_functions = inspect.getmembers(my_mod, inspect.isfunction)

但是,列表all_functions不仅包括模块中定义的函数,还包括导入到模块中的函数。

有办法区分吗?

最佳答案

解决方案的关键是function_name.__module__。考虑以下代码:

import a as module_to_check

print(
'checking module "{}"'
.format(module_to_check.__name__))

for attr in dir(module_to_check):
if callable(getattr(module_to_check, attr)):
print(
'function "{}" came from module "{}"'
.format(
getattr(module_to_check, attr).__name__,
getattr(module_to_check, attr).__module__))

输出是:

checking module "a"
function "a_2" came from module "a"
function "b_2" came from module "b"

a.py 是:

from b import b_1, b_2

a_1 = 1

def a_2():
pass

b.py 是:

b_1 = 1

def b_2():
pass

关于python - 如何获取某个.py文件中定义的所有函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53698695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com