典型的參數傳遞方式有二種:
* Pass-by-value: 複製參數的值傳入,所以原參數內容不會被影響。
* Pass-by-reference: 傳入參數的參考,會影響原參數內容。
還有少數程式語言使用以下兩種傳遞方式:
* Pass-by-name: 將傳入的參數視為變數名稱或是字串,概念類似 string evaluation。
* Pass-by-value-result: 又稱 copy-in, copy-out,不直接傳入變數的參照,反而是將其複製一份傳入參照,最後再把結果指派回原先的變數。
如果以上四種就可以解釋完 Python 的參數傳遞方式,那或許也不需要寫這篇文章了(笑)。嚴格來說,Python 並不屬於以上四種傳遞方式,但是觀念上都是互通的,在這之前,我們必須先了解何謂 Immutable/Mutable。
Immutable Object and Mutable Object
Immutable 代表物件產生後就不可以被修改,反之 Mutable 則是可以被修改。舉例來說 Python 中
numbers, boolean