我不完全確定這種行爲是否可以預料,但它確實很奇怪。當你有這樣的代碼:未解決的引用與Python中的列表
def a_function():
if a_list != some_other_list:
print(a_list)
它工作正常,我沒有問題。但是,如果將其更改爲:
def a_function():
if a_list != some_other_list:
a_list = some_other_list
突然,出現了一個問題,它說,a_list
第2行是一個懸而未決的參考。爲什麼if語句中的內容會影響a_list
是否可以解決?這種事情是否正常?這可能是Python 3.6.1或PyCharm(Community Edition 2017.1.5)中的一個錯誤?任何幫助澄清這將不勝感激。
比較用==完成,不用=。 –
你可以發佈完整的代碼('a_list'和'some_other_list'的定義)嗎?你的第二行(修改)會產生一個_SyntaxError_,但根據你的意思,它不會(所以'='可能是一個錯字?)。 – CristiFati
行'3'代替'print()'。當你分配給'a_list'時,它試圖創建一個本地'a_list',這意味着你在比較中使用'a_list'現在失敗了。在函數的第一行執行'global a_list'會解決這個問題,但是你真的應該考慮傳入和返回值到函數和全局變量中。 – AChampion