在 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()