方法1(全局變量):爲函數的Python最佳實踐
id_constant = 1000
id_cnt = 1
def give_id():
global id_cnt
id_cnt += 1
return id_constant * id_cnt
id = give_id()
方法2(FUC變種而不是全局變量):
id_cnt = 1
def give_id():
id_constant = 1000
global id_cnt
id_cnt += 1
return id_constant * id_cnt
id = give_id()
方法3(通過在全局變量):
id_cnt = 1
id_constant = 1000
def give_id(constant, cnt):
return constant * cnt
global id_cnt
id_cnt +=1
id = give_id(id_constant, id_cnt)
即時通訊不確定是否有任何一般的經驗法則,但是被廣泛接受的函數來訪問一個函數內的全局變量重刑?或者如果變量只用於一個函數,那麼它應該是一個函數變量的一部分嗎?
有時是必要的,但總的來說,在所有的語言,訪問'global'變量是不好的做法 – Scironic
一般較少的全局變量意味着更好的代碼,所以嘗試使用參數並返回值而不是全局變量。什麼來問你的問題,上下文將有助於爲你選擇最好的方法。你在用什麼ID? –
不要忘記你可以在函數參數中使用默認值,例如:'def foo(bar = 4):\ print bar',如果調用爲'foo()',將會打印'4'。通常這對於很少更改的配置變量來說更好,因爲它避免了全局變量(實際上是模塊級別的變量),並且保持常量接近代碼中的使用。 – thirtythreeforty