如何在函数内获取传递参数的名称

时间:2014-08-18 23:04:27

标签: python ipython

是否有一种简单的方法可以从函数内部获取传递给Python函数的参数名称?

我正在构建一个在Python命令行上运行的交互式图像处理工具。

我希望能够这样做:

beta = alpha * 2;  # double all pixel values in numpy array  
save(beta)         # save image beta in filename "beta.jpg"  

另一种方法是让用户明确输入文件名,这是我想要避免的额外输入:

beta = alpha * 2;  # double all pixel values in numpy array  
save(beta, "beta") # save image beta in filename "beta.jpg"  

2 个答案:

答案 0 :(得分:2)

可悲的是,你做不到。

How to get the original variable name of variable passed to a function

但是,你可以做这样的事情

def save(**kwargs):
    for item in kwargs:
        print item #This is the name of the variable you passed in
        print kwargs[item] #This is the value of the variable you passed in.
save(test='toast')

尽管如此,这样做可能是更好的做法

def save(name,value):
    print name
    print value

save("test","toast")

答案 1 :(得分:1)

您无法获得"名称"一个参数,但你可以做这样的事情来传递字典中的名称和值:

save({"beta": alpha*2})

现在,在save()函数内:

def save(param):
    # assuming Python 2.x
    name  = param.keys()[0]
    # assuming Python 3.x
    name  = next(param.keys())
    value = param[name]

请注意,一般来说,在编程语言中,您对参数的名称不感兴趣,这是无关紧要的 - 重要的是它的