[英]python passing parameter to a function
我不清楚將列表作為 arguments 傳遞給 python 中的函數的概念。
我自己試過研究這個,沒有找到足夠的資源。
我想實現一個助手 function 從給定列表中返回許多隨機項目。 (在 django 查詢集中)
但是,該列表可能包含多行並將其按值傳遞給 function 可能會導致 memory state 超出,如果我錯了,請糾正我。
那么我應該如何將列表傳遞給 function?
在 Python 中有名稱和值。 賦值語句使名稱引用一個值。 賦值永遠不會復制,賦值永遠不會改變值。 它只會更改名稱所指的值。 將參數傳遞給 function 就像一個賦值:現在 function 中參數的本地名稱指的是傳入的值,並且永遠不會復制。 對於 Python 中的所有對象,無論其類型如何,這種名稱引用值的機制以及更改值名稱所引用的賦值都是相同的。
由於可變和不可變的值,這變得令人困惑。 如果您將可變值(例如,列表)傳遞給 function,並更改該值,則引用該值的調用者名稱也將看到更改后的值。 如果您將不可變值傳遞給 function(例如,字符串或數字),則任何人都無法更改該值。
Python 中的所有內容都是標識符。 對於列表,您可以將評估策略視為“引用調用”。 它實際上被命名為“共享調用” 。
不會。將列表傳遞給 function 對 memory 沒有任何影響。 Python不復制列表。
Ned Batchelder所說的完整解釋:
http://docs.python.org/tutorial/classes.html#python-scopes-and-namespaces
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.