如果函數(shù)接收到的參數(shù)是一個可變對象(類類型,列表,字典),就會改變對象的原始值。 如果函數(shù)接收到的參數(shù)是一個不可變對象,即基本數(shù)據類型(數(shù)值型,字符串,布爾),就不會改變對象的原始值。
無論什么參數(shù),都是傳引用,只不過基本數(shù)據類型的賦值其實是重新構造并指向了一個新的對象,內存地址不一樣,可以用id()來查詢內存地址~
對于可變對象(類類型,列表,字典)來說,如果直接x=y
的話,x和y的內存地址相同;如果只是想簡單賦值,就得用 x=y[:]
。(如eg1所示) 對于不可變對象(數(shù)值型,字符串,布爾)來說,直接等就可以了,兩種賦值方式并無區(qū)別,且 x=y[:]
這種方式并不是所有數(shù)據類型都適用,比如int就會報錯(如eg2所示)
新聞熱點
疑難解答