【发布时间】:2015-04-18 16:37:34
【问题描述】:
我编写了一个程序来创建和维护一个数组,并且我编写了另一个模块,该模块具有操作数组的功能。是否可以调用导入模块中的每个函数而不必对每个函数调用进行硬编码?意思是这样的:
#Some way I don't know of to get a list of function objects
listOfFunctions = module.getAllFunctions()
for function in listOfFunctions:
array.function()
我想这样做,这样我就不必每次向我的操作模块添加一个函数时都更新我的主文件。
我找到了这些:
How to call a function from every module in a directory in Python?
Is it possible to list all functions in a module?
listing all functions in a python module
而且只发现在 python 文档的模块中列出了函数。
我可以想办法使用一些字符串操作和 eval() 函数来做到这一点,但我觉得必须有一个更好、更 Pythonic 的方式
【问题讨论】:
-
这在某些单元测试中听起来像是一种非常脆弱的破解方式。如果这就是您所追求的,为什么不连接一个合法的单元测试框架呢?否则我不太明白你的意图是什么。
-
@Cyber 我没有将它用于测试目的,所以我不追求单元测试框架。如果有什么我不会对我正在导入的模块中的实际功能运行单元测试以确保它们正常运行?
-
我会在我的模块中创建一个列表,然后当我在其中创建一个函数时,在函数的范围内我会将它添加到列表中。这样,辅助函数不需要在列表中。然后 getAllFunctions 将返回列表。
标签: python function module callback python-import