我有这个方法,它接收了一个未知数量的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中有效地做到这一点?
答案 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变量名称匹配。