在python中将模块传递到变量中

2024-05-13 22:19:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要这样的东西:

import Variant
x = Variant.Pop1
from x import mid

这可能吗


Tags: fromimportvariantmidpop1
3条回答

是的,但这不是一个关于如何导入模块的好例子,这是一个糟糕的做法

这正是你想要做的,但更好

from Variant.Pop1 import mid as x

def my_func(var):
   # do something

my_func(x)

例如:

from random import choice as x

my_list = [1, 2, 3, 4]

def my_func(var):
    return var(my_list)

print(my_func(x))

我不知道它是否会帮助你,但是你可以考虑^ {CD1>}模块:它允许动态导入,比如:

from importlib import import_module

module_names = ["Pop1", "Pop2", ...]

def foo():
    for name in module_names:
        module = import_module(name, "Variant")
        module.mid(...)

要从变量中的名称导入模块,请使用importlibsee python docs

例如:

import importlib
import os.path as p
x = p.__name__
q = importlib.import_module(x)

当然,这个例子很愚蠢,因为q的值与p的值相同,但它演示了语法。如果这不是您想要的,请提供更多详细信息

另一种选择是使用exec,如this other post

相关问题 更多 >