在 python 中将包名称和函数名称作为变量传递
Passing package name and function name as variable in python
我在文件 f1.py
中定义了一个函数:
def fn1():
return 1
def fn2():
return 2
为了学习练习,我尝试了以下有效的方法:
import f1
from f1 import fn1, fn2
但是下面的方法不起作用:
pkgName = 'f1'
fnName = 'fn1'
from pkgName import fnName
如何将包名称和函数名称作为变量传递?
您可以先使用__import__
函数导入模块,然后使用getattr
:
将函数作为模块对象的属性访问
module_name = 'f1'
function_name = 'fn1'
fn = getattr(__import__(module_name, fromlist=[function_name]), function_name)
fn()
我在文件 f1.py
中定义了一个函数:
def fn1():
return 1
def fn2():
return 2
为了学习练习,我尝试了以下有效的方法:
import f1
from f1 import fn1, fn2
但是下面的方法不起作用:
pkgName = 'f1'
fnName = 'fn1'
from pkgName import fnName
如何将包名称和函数名称作为变量传递?
您可以先使用__import__
函数导入模块,然后使用getattr
:
module_name = 'f1'
function_name = 'fn1'
fn = getattr(__import__(module_name, fromlist=[function_name]), function_name)
fn()