Python參數(shù)傳遞和一些坑

Python 中的參數(shù)傳遞模式是共享傳參
def add(a, b):
    a += b
    return a 

x = 1
y = 2

//調(diào)用加法
add(a, b)

print(a)//此時輸出的值為1

如果可變對象作為默認(rèn)值的話,會導(dǎo)致一些問題

class List:
  def __init__(self, list = []):
    self.list = list

a = List()
b = List()

a.list// -> []
b.list// -> []

a.list.append(1)
a.list// -> [1]
b.list// -> [1]
//此時b 跟 a 引用了同一個列表

建議不要使用可變類型作為參數(shù)的默認(rèn)值

如何解決上面的問題?

class List:
    def __init(self, list = None):
        if list is None:
            self.list = []
        else:
            self.list = list
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容