使用 * 导入时如何列出 python 模块中的所有函数
How to list all functions in a python module when imported with *
我在 python 中导入一个模块,如下所示:
from myutils.user_data import *
如何查看我导入的方法列表?
我从这里知道一种解决方法:
How to list all functions in a Python module?
是:
from inspect import getmembers, isfunction
import myutils.user_data as module_name
functions_list = getmembers(module_name, isfunction)
print(functions_list)
但这将迫使我使用命名法:
module_name.mehtodA() 而我希望能够使用这样的方法 methodA()
我当然可以:
from myutils.user_data import *
import myutils.user_data as module_name
但这实际上是两次导入。
有什么想法吗?
编辑:我为什么需要这个?我正在 JupyterHub 环境(内部)中为模块创建文档。我使用笔记本创建此文档,即任何有兴趣了解特定 .py 文件(包括实用程序方法)的使用的人都可以打开笔记本并进行操作,并且可以将 jupyter 笔记本呈现为带有 voila 的网站。在这种情况下,我想打印特定 .py 文件中包含的所有方法。
这也是刚才让我很好奇的一个问题。有人评论说你永远不会导入带有 * 的模块。好吧,如果您知道要导入的是一些非常小的方法,那为什么不呢。
一般很少建议您使用 from ... import *
样式,因为它可能会覆盖本地符号或其他模块首先导入的符号。
蜜蜂说的,你可以做到
symbols_before = dir()
from myutils.user_data import *
symbols_after = dir()
imported_symbols = [s for s in symbols_after if not s in symbols_before]
将新导入的符号存储在 imported_symbols
列表中。
或者您可以使用该模块仍加载到 sys.modules
并执行
的事实
import sys
from inspect import getmembers, isfunction
from myutils.user_data import *
functions_list = getmembers(sys.modules['myutils.user_data'], isfunction)
print(functions_list)
我在 python 中导入一个模块,如下所示:
from myutils.user_data import *
如何查看我导入的方法列表?
我从这里知道一种解决方法:
How to list all functions in a Python module?
是:
from inspect import getmembers, isfunction
import myutils.user_data as module_name
functions_list = getmembers(module_name, isfunction)
print(functions_list)
但这将迫使我使用命名法:
module_name.mehtodA() 而我希望能够使用这样的方法 methodA()
我当然可以:
from myutils.user_data import *
import myutils.user_data as module_name
但这实际上是两次导入。
有什么想法吗?
编辑:我为什么需要这个?我正在 JupyterHub 环境(内部)中为模块创建文档。我使用笔记本创建此文档,即任何有兴趣了解特定 .py 文件(包括实用程序方法)的使用的人都可以打开笔记本并进行操作,并且可以将 jupyter 笔记本呈现为带有 voila 的网站。在这种情况下,我想打印特定 .py 文件中包含的所有方法。
这也是刚才让我很好奇的一个问题。有人评论说你永远不会导入带有 * 的模块。好吧,如果您知道要导入的是一些非常小的方法,那为什么不呢。
一般很少建议您使用 from ... import *
样式,因为它可能会覆盖本地符号或其他模块首先导入的符号。
蜜蜂说的,你可以做到
symbols_before = dir()
from myutils.user_data import *
symbols_after = dir()
imported_symbols = [s for s in symbols_after if not s in symbols_before]
将新导入的符号存储在 imported_symbols
列表中。
或者您可以使用该模块仍加载到 sys.modules
并执行
import sys
from inspect import getmembers, isfunction
from myutils.user_data import *
functions_list = getmembers(sys.modules['myutils.user_data'], isfunction)
print(functions_list)