寫一個功能,運行報錯,name 'number' is used prior to global declaration ,查資料梳理一下函數
由於這個函數須要調用屢次,第一次調用的時候,走if語句,後面的走else語句,因此須要一個判斷對象,我這裏設置了一個全局變量,以它爲判斷標準,首次調用函數後,全局變量➕ 1 ,參照代碼以下。實際運行後spa
1 number = 10 2 print('number 外',number) 3 def add(): 4 if number == 10: 5 print('number=',number)
else:
print('-------') 6 global number 7 number = 12 8 add()
運行結果是:code
global number
^
SyntaxError: name 'number' is used prior to global declaration對象
網上查了一下資料,錯誤緣由以下:blog
在更改全局變量前調用全局變量了,並且更無語的是,這樣寫代碼,在不運行前,我使用pycharm不會有任何提示,讓你以爲寫得很完美,一運行很傷心。一開始我這裏當成c的全局變量使用習慣了。pycharm
解決方法:io
函數添加了一個參數,以這個參數爲判斷標準,而後更改全局變量class