我想保留一個函數迭代中保存的結構,以便保留數據以備後用。 使用全局變量有一個簡單的方法。通過迭代在函數中保持結構「活着」?
問題是,任何人都可以訪問該變量。 那麼,有沒有辦法創建一個只能由函數訪問的變量,但是在運行此函數時不會被擦除?
例:
mylist = []
def test():
global mylist
if mylist:
my_list.append(1)
other_stuff, using my_list
正是我想做的事,但my_list可能被其他人訪問。
(好吧我知道的例子是完全啞)
很抱歉的提法,但我不能來的東西簡單
編輯:好了,所以有這麼不同的(和所有有趣的)解決方案。我會很快解釋我想做什麼的想法:)
讓我們想象一下,我想要計算的是一個數字是素數。這通常是計算性的。
所以我得到了一個is_prime(value)函數,返回False或True。
值可以是任何數字,但有機會(在我的情況下)該值需要幾次相同的值(litteraly ^^)。
在這種情況下,我可以使用我已經發現的素數列表(不要太長)來快速檢查和保存計算。 但是我的prime_list在返回true/false的函數中沒有用處。
所以這裏是我的問題:)。
希望澄清一些思想(包括我!)。
爲什麼不是這個結構的函數參數?這難道不是很簡單嗎? – 2012-01-31 21:47:11
http://stackoverflow.com/questions/279561/what-is-the-python-equivalent-of-static-variables-inside-a-function – 2012-01-31 21:49:56
的潛在重複是和否。如我的例子所示,這個變量可能是/或不存在的。如果有參數,這個列表將出現在代碼的其他地方。我想避免 – jlengrand 2012-01-31 21:50:41