我已經花了幾個小時在這裏和其他地方閱讀以及嘗試,但我並不真正瞭解我確定的是一個非常基本的概念:傳遞值(作爲變量)在不同的功能之間。Python:在函數之間傳遞變量
例如,我在一個函數一大堆值分配給一個列表,然後以後要使用在其他功能列表:根據我的理解是什麼函數參數做,我
list = []
def defineAList():
list = ['1','2','3']
print "For checking purposes: in defineAList, list is",list
return list
def useTheList(list):
print "For checking purposes: in useTheList, list is",list
def main():
defineAList()
useTheList(list)
main()
預計這樣做如下:
- 將'list'初始化爲空列表;調用main(至少,我知道我已經正確...)
- 在defineAList()中,將某些值分配到列表中;然後將新列表傳遞迴main()
- 在main()中,調用useTheList(list)
- 由於'list'包含在useTheList函數的參數中,我期望useTheList現在可以使用列表由defineAList()定義,而不是在調用main之前定義的空列表。
但是,這顯然是一種錯誤的理解。我的輸出是:
For checking purposes: in defineAList, list is ['1', '2', '3']
For checking purposes: in useTheList, list is []
所以,既然「回報」,顯然沒有做什麼,我想這樣做,或至少它不會做它,我覺得它應該的方式......這是什麼實際上做?使用這個例子,你能告訴我,我需要做些什麼才能從defineAList()中獲取列表並在useTheList()中使用它?當我看到它們發生時,我傾向於更好地理解事物,但我見過的正確參數傳遞的很多示例也使用了我不熟悉的代碼,並且在確定發生了什麼的過程中,我我並沒有真正理解這個概念。我使用2.7。
ETA-在過去,問了一個類似的問題,有人建議我使用全局變量而不是僅僅局部變量。如果在這裏也是相關的 - 爲了我所採用的課程的目的,我們不允許使用全局變量。
謝謝!
謝謝您的詳細解釋!我知道我在這裏錯過了一些基本的東西。 :) – user2113818
請不要命名的東西'列表',你失去了調用內置'列表'的能力:) –
我不寫我什麼時候我真的打算跑的目的! – user2113818