2013-03-10 5 views
-2

Как создать динамические переменные в Python с именем пользователя? Например, есть пользователь «Джон», поэтому я буду создавать некоторые переменные с именем «Джон», например, переменные john1, john2, john3.Динамические переменные в Python

+8

Почему бы не использовать словарь? Какое пространство имен - ваши переменные, которые должны быть определены * в *? –

+1

http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html –

+0

У python есть массивы? –

ответ

2

Довольно легко, но, вероятно, не желательно. Я снова посмотрю на ваш дизайн и подумаю, может ли словарь лучше всего продвинуться вперед.

Однако, так как вы задали вопрос, вы можете использовать exec bultin:

var = 'John1' 
value = 42 

exec "%s = %d" % (var,value) 
exec "print %s" % (var) 

print (dir()) 

дает:

42 
['John1', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'value', 'var'] 

(Python 2.7.3)

Edit: @ комментарий BrianOakley в имеет точку. Использование подобных механизмов немного напоминает употребление алкоголя. Кажется хорошей идеей в то время и временно решает ваши проблемы, но вы знаете, что вы пожалеете об этом утром. В долгосрочной перспективе это просто вызывает больше горя, и вы знаете, что ваша мать не хотела бы, чтобы вы это делали.

+0

Вы должны подчеркнуть немного более убедительно, что вы не должны этого делать. Это делает код значительно сложнее понять и поддерживать с нулевой добавленной выгодой. –

+0

@BryanOakley: Я отвечаю на вопрос, я не полицейский. – cdarke

+0

@BryanOakley: добавил комментарий в хвост ответа. – cdarke

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