在 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
我想在文件 "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