2013-03-10 94 views
-2

如何在Python中使用用戶名創建動態變量?例如,有一個用戶「John」,所以我將創建一些名稱爲「John」的變量,例如變量john1,john2,john3。Python中的動態變量

+8

爲什麼不使用字典?什麼命名空間是你的變量應該被定義* in *? – 2013-03-10 11:53:24

+1

http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html – 2013-03-10 11:58:46

+0

確實python有數組? – 2013-03-11 16:28:22

回答

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)

編輯:@ BrianOakley的評論有一點。使用這種機制有點像喝酒。當時似乎是一個好主意,暫時解決了你的問題,但是你知道早上你會後悔的。長期來看,它只會導致更多的悲傷,而且你知道你的母親不會喜歡你這樣做。

+0

你應該強調一點,你應該不要這麼做。它使得代碼相當難以理解和維護,並且沒有額外的好處。 – 2013-03-10 12:46:12

+0

@BryanOakley:我在回答一個問題,我不是代碼警察。 – cdarke 2013-03-10 22:30:12

+0

@BryanOakley:在答案尾部添加了一條評論。 – cdarke 2013-03-11 09:21:24