简体   繁体   English

如何在 python 3 的函数中导入模块作为参数

[英]How can I import a module as a parameter in a function in python 3

I try to import a module as a parameter in a function.我尝试将模块作为函数中的参数导入。 But my PyCharm show me a error Can someone help me please但是我的 PyCharm 显示一个错误有人可以帮我吗

#Code #代码

#This program schow me all commands from a Modul ( for example os ) def schow(name): import name #该程序显示来自模块(例如 os)的所有命令 def schow(name): import name

 a = list((str(dir(name))).split(",")) for i in range(0, len(a)): print(str(i) + a[i])

schow(os)肖(操作系统)

Error错误

Traceback (most recent call last): File "/Users/ /PyChrm/ / / .py", line 10, in schow(os) NameError: name 'os' is not defined Traceback(最近一次调用最后一次):文件“/Users/ /PyChrm/ / / .py”,第 10 行,在 schow(os) NameError: name 'os' is not defined

Process finished with exit code 1进程以退出代码 1 结束

Welcome to StackOverflow 😊👋欢迎来到 StackOverflow 😊👋

As commented here , you're looking for the importlib.import_module module.正如这里所评论的,您正在寻找importlib.import_module模块。

You can do it like this:你可以这样做:

import importlib

# Single line import
importlib.import_module('itertools.combinations')

# Looping import
MODULES = {
    'typing': ['Optional', 'Union', 'List']
}
for (module, submodules) in MODULES.items():
    for submodule in submodules:
        importlib.import_module(f"{module}.{submodule}")

Or you can do it manually, like this:或者您可以手动执行此操作,如下所示:

MODULES = {
    'itertools': ['combinations'],
    'typing': ['Optional', 'Union', 'List']
}

for (module, submodules) in MODULES.items():
    import_str = f"from {module} import {', '.join(submodules)}"
    exec(import_str)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM