Python:如何使用variab传递参数名

2024-09-29 17:11:26 发布

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

我使用的模块有许多函数,这些函数使用不同的参数名定义,或多或少有相同的用途:

def func1(start_date):
    ....
def func2(startdate):
    ....
def func3(s_date):
    ....
def func4(sdate):
    ....

它们都出现在参数列表的不同位置(在上面的简化例子中,它们都在位置1,但实际上情况并非如此)。在

我想编写一个包装器,它可以通过字典从函数名传递到参数名,将实际的start_date传递给这些函数中的任何一个:

^{pr2}$

那么实际的包装:

f2a = func2arg_name()
def func(func_name, sdate):
    locals()[func_name](f2a[func_name] = sdate)

func('func1', '20170101')

显然这行不通。实际上,f2a[func_name]没有被识别为合法的关键字。有人知道怎么做吗,比如用变量传递参数名吗?注意func1到{}是外部定义的,不能更改。在


Tags: 模块函数name参数date定义def用途

热门问题