2015-02-11 3 views
1

У меня есть этот метод, который принимает неизвестное количество аргументов, и у меня есть некоторые переменные из другого класса, которые я хочу совместить с именем переменной arg. Имена переменных одинаковы для этого текущего класса и для OtherClass. Я думал о чем-то вроде:Получение имени переменной в Python?

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

Как я мог сделать это эффективно в python?

+0

Возможно, вы захотите использовать 'dict' –

+0

' x = 5; def n (p): print "varname is?"; n (x); 'является именем var 5 x или p? несколько имен могут указывать на один и тот же объект ... каково фактическое имя переменной объекта? –

ответ

3

Я думаю, вы должны использовать ** kwds вместо args. * args - это значения, поэтому вызывающий может отправлять его не с переменной, а просто по стоимости.

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

Если вы используете ** kwds, вы будете знать пары ключей, значений.

1

Вы могли бы использовать что-то вроде

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

Чтобы получить dict со значениями для каждого аргумента, а затем оттуда вы могли бы соответствовать dict значения с соответствующим агд именем переменной.

Смежные вопросы