是否有一种简单的方法可以从函数内部获取传递给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"
答案 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]
请注意,一般来说,在编程语言中,您对参数的名称不感兴趣,这是无关紧要的 - 重要的是它的值