gpt4 book ai didi

python - 如何列出忽略模块导入函数的 Python 模块的所有函数?

转载 作者:行者123 更新时间:2023-12-01 21:23:43 24 4
gpt4 key购买 nike

我有一个 Python 模块“something.py”,我想获取我在此文件中编写的所有函数的列表。我关注了this所以张贴解释这样做的标准方法。

问题是我在 something.py 中有导入函数,所以当我试图列出我的函数时,我也列出了我不关心的导入函数。如何获取我在 something.py 中编写的函数列表?

最佳答案

this answer--Find functions explicitly defined in a module 更新函数从 Python 2 到 3(即用 values() 替换 itervalues():

def is_mod_function(mod, func):
' checks that func is a function defined in module mod '
return inspect.isfunction(func) and inspect.getmodule(func) == mod


def list_functions(mod):
' list of functions defined in module mod '
return [func.__name__ for func in mod.__dict__.values()
if is_mod_function(mod, func)]

用法

print(list_functions(something))  # Output: ['a1', 'b1']

文件 main.py(主模块)

import inspect
import something # project module

def is_mod_function(mod, func):
return inspect.isfunction(func) and inspect.getmodule(func) == mod


def list_functions(mod):
return [func.__name__ for func in mod.__dict__.values()
if is_mod_function(mod, func)]

def list_functions1(mod):
return [func.__name__ for func in mod.__dict__.itervalues()
if is_mod_function(mod, func)]


# Get list of functions defined only in module something
print(list_functions(something))

文件 something.py (something 模块)

from textwrap import dedent
from math import sin, cos
import numpy as np

def a1():
pass

def b1():
pass

输出

['a1', 'b1']  # shows only the functions defined in something.py

关于python - 如何列出忽略模块导入函数的 Python 模块的所有函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63447803/

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