result =
def init():
result =
def run():
for item in items:
return result
問題依舊存在沒有做初始化處理!因為對於init函式來說,result是新申請的變數,對於run來說,本身函式沒有result的宣告,所以預設尋找它上一次的result,所以init裡面的result和run裡面的result完全是兩個變數。
最後我用了下面的**:
result =
def run():
result=
for item in items:
return result
在每一次請求中呼叫一次初始化,這樣就ok了。如果一定要使用init(),那就要在init()裡面使用global,讓該函式知道它是乙個全域性變數,用的是上一層的變數,而不是重新建立乙個。
看看下面這個例子:
a = [1,2,3]
def func(arg):
arg = [1]
func(a)
print a
可以看到,a還是[1,2,3],在這裡同樣是新建乙個新的物件,func中的賦值操作無法改變外層的list如果是下面這個例子:a = [1,2,3]
def func(arg):
func(a)
print a
或者是:
a = [1,2,3]
def func():
func()
print a
如果是這兩種寫法,那a就是[1,2,3,4]
ok,完!
區域性變數 全域性變數小小記錄
設定了區域性環境變數後,就能在shell程序的任何地方使用它了。但是,如果生成了另外乙個 shell,它在子shell中就不可用。my variable hello world bash echo my variable exit exit echo my variable hello world ...
python函式區域性變數
python簡單變數 不考慮類變數 分為兩類 函式內定義的區域性變數,和函式外定義的全域性變數 基本訪問規則 1.在函式內部,可以直接 讀取訪問全域性變數 注意唯讀 usr bin env python i 10 def f j i 1 讀取全域性變數i f print i d i 2.在函式內部,...
python學習 區域性變數
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是區域性的。這稱為變數的作用域。所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。例子 1 usr bin python 2 filename func local.py 4 x 50...