Python从子目录动态导入函数。

我试图根据一个参数从一个模块中动态导入函数,但不太明白。我有一个处理函数,然后一个子目录,每个子目录中都有一个我想使用的函数。我正在使用 import_moduleimportlib但它还没有完全解决我的问题。

我的文件结构是

handler.py
functions
--__init__.py
--square.py

这是我导入的模块square.py):

def sq(param):
  return param*param

这是我的处理程序代码

from importlib import import_module

def main(fun):
  file = import_module(fun)
  result = fun.sq(4)
  print(result)

我调用我的处理程序是这样的: main("functions.square")

我想这样调用我的处理程序: main("functions.square.sq") 这样我的主函数就会像:

from importlib import import_module

def main(fun):
  file = import_module(fun)
  result = fun(4)
  print(result)

你知道怎么做吗?

谢谢你的帮助。

解决方案:

我有一个变通的办法,把所有子文件的主函数(比如 square)命名为相同的,把它们都命名为 run(). 因此,我可以像这样动态地调用它们。

from importlib import import_module

def main(fun):
  result = import_module(fun).run(4)
  print(result)

给TA打赏
共{{data.count}}人
人已打赏
未分类

事件总线 - 创建多个事件

2022-9-13 14:29:30

未分类

有什么方法可以用scandir循环文件夹?我面临一个问题,当循环使用

2022-9-13 14:40:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索