在 from-import 语句中使用 python 函数中的输入

Use input in python function in from-import statement

我想在文件 "a.py" 的函数中使用输入(字符串)指向另一个 python 代码文件 "b.py"。在b.py代码中我有一些功能,我想使用。

我试过:

b.py.

def function1(x,y):
    s=x+y
    print(s)
    return

function1(2,4)

(b.py 位于 a.py 的子文件夹中,名为 .app.dashapp1)

和a.py:

def function(func_name):
    name = "app.dashapp1." + func_name
    __import__(name)
    function1(2, 4)
    return

function("b")

当我 运行 a.py 时,我得到了错误消息:

"NameError: name 'function1' is not defined"

:(

会帮我很多忙。我来自 matlab/R 并且是 Python(虽然喜欢它)和这个论坛的新手。

谢谢!

您忘记将名称 function1 绑定到函数。

def function(func_name):
    name = "app.dashapp1." + func_name
    function1 = __import__(name).function1
    function1(2, 4)
    return

function("a")

importlib.import_module代替__import__advised:


a.py:

import importlib

def func(name):
        module_str = "dashapp1." + name  # get module str
        module = importlib.import_module(module_str)  # import module from str
        f = getattr(module, "function")  # get function "function" in module
        f(1, 2)  # execute function "function" in module

func("b")

dashapp1/b.py:

def function(a, b):
        print("{a} - {b}".format(a=a, b=b))

输出:

$ python3.7 a.py 
1 - 2