我試過看過幾個不同的例子,但我不確定爲什麼這不起作用。說我有這樣的代碼:Python方法中的執行順序
def loadVariable():
global count
count = 0
def loadDictionary():
location = 'some location'
global myDict
myDict = pickle.load(open(location, 'rb'))
def main():
loadVariable()
loadDictionary()
for item in myDict:
if item.startswith("rt"):
count += 1
item = item[3:]
if __name__ == '__main__':
main()
在我眼中,執行if語句啓動main()方法。然後,加載全局變量,加載字典並執行for循環。
但是,當我運行代碼時,我被告知局部變量計數在賦值之前被引用。爲什麼會發生?
編輯(解釋一些我已經寫在註釋中的東西):
這不工作(雖然我認爲這是因爲全球採用錯在這裏):
global count
def loadVariables()
count = 0
def main():
loadVariables()
rest of code etc
這也不起作用:
def loadVariables()
count = 0
def main():
global count
loadVariables()
rest of code etc
到目前爲止,我得到它的唯一辦法是使用上面提供的鏈接,這是對待th Ë算作一個列表,像這樣:
def loadVariables():
global count
count = [0]
def main():
loadVariables():
rest of code etc
count[0] += 1
有沒有變量稱爲'任何地方count'一個簡單的例子。我認爲你誤解了「全球化」的運作方式。 –
@PhillipCloud不,那部分工作正常。 'loadVariable'創建一個全局變量'count','loadDictionary'創建一個全局變量'myDict'。 – delnan