在Python中获取变量名称?

时间:2015-02-11 18:23:21

标签: python

我有这个方法,它接收了一个未知数量的args,我有一些来自另一个类的变量,我希望将arg变量名称与之匹配。变量名在当前类和OtherClass中是相同的。我想的是:

def my_method(self, *args):
    for arg in args:
        OtherClass.arg_variable_name = arg # where "arg" on the right is the value

我怎么能在python中有效地做到这一点?

2 个答案:

答案 0 :(得分:3)

我认为你应该使用** kwds而不是args。 * args是值,因此调用者不能使用变量发送它,而只是自己赋值。

my_object.my_method(1, 2, 3, "string")

如果你使用** kwds,你就会知道键值对。

答案 1 :(得分:1)

您可以使用类似

的内容
dict( (name,eval(name)) for name in['self','args']

要获得具有每个参数值的dict,然后从那里可以将dict值与您各自的arg变量名称匹配。