在Python中,函數參數傳遞的規則如下:
不可變對象作為參數:當傳遞不可變對象(例如數字、字符串、元組)作為函數參數時,實際上是傳遞了對象的值的副本。在函數內部對參數進行修改不會影響到原始對象。
可變對象作為參數:當傳遞可變對象(例如列表、字典、集合)作為函數參數時,實際上是傳遞了對象的引用。在函數內部對參數進行修改會影響到原始對象。
默認參數:函數定義時可以給參數指定默認值。調用函數時如果沒有傳遞該參數,則使用默認值。默認參數的值只在函數定義時評估一次,即每次調用函數時如果沒有傳遞該參數,都會使用默認值。
關鍵字參數:調用函數時可以通過參數名指定參數的值,而不必按照函數定義時的順序傳遞參數。這種方式稱為關鍵字參數。
可變數量參數:函數定義時可以使用*args表示可變數量的位置參數,使用**kwargs表示可變數量的關鍵字參數。這樣函數可以接受任意數量的參數。
需要注意的是,對于不可變對象和可變對象,函數內部修改參數并不會改變原始對象的引用。函數內部重新給參數賦值只是改變了參數的引用,不會改變原始對象的引用。