开发者社区 问答 正文

Python中如何动态导入模块执行

根据输入的模块,输入模块中的函数,然后动态导入模块,执行模块中的函数

根据如下:

m=input("请输入模块名称")
f=input("请输入函数名称")

假设m的值为sys,f的值为version,那么效果就如下

import sys

print(sys.version)

展开
收起
道月芬1 2021-10-19 13:05:14 457 分享 版权
阿里云 AI 助理回答

在Python中,要根据用户输入的模块名称和函数名称动态地导入模块并执行该模块中的函数,可以使用importlib模块的import_module函数来实现动态导入。下面是一个示例代码,展示了如何根据您的需求完成这个任务:

import importlib

# 获取用户输入
m = input("请输入模块名称: ")
f = input("请输入函数名称: ")

# 动态导入模块
try:
    module = importlib.import_module(m)
except ImportError:
    print(f"模块 {m} 未找到。")
    exit(1)

# 检查函数是否存在并执行
if hasattr(module, f):
    function_to_call = getattr(module, f)
    function_to_call()
else:
    print(f"函数 {f} 在模块 {m} 中未找到。")

这段代码首先使用input函数接收用户输入的模块名和函数名。然后,尝试使用importlib.import_module动态地导入指定的模块。如果模块存在,它会检查该模块是否有用户指定的函数(通过hasattr函数),如果有,则使用getattr获取该函数并执行。如果在任一环节出现问题,如模块不存在或函数找不到,都会给出相应的错误提示。

按照您的例子,如果用户输入sys作为模块名,version作为函数名,这段代码就会输出Python解释器的版本信息,就像直接写import sys; print(sys.version)一样。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答