根据输入的模块,输入模块中的函数,然后动态导入模块,执行模块中的函数
根据如下:
m=input("请输入模块名称")
f=input("请输入函数名称")
假设m的值为sys,f的值为version,那么效果就如下
import sys
print(sys.version)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在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)
一样。