python函數的可變對象參數和不可變對象參數

       python中,當把一個對象作爲參數傳給一個函數時,對於可變對象和不可變對象是具有不同的行爲的。對於可變對象來說,可以認爲是將該對象的一個內存引用傳給函數,對象並沒有在內存中被新創建,所以函數對可變對象的操作會同時反映其他具有相同引用的變量上,因此,對於可變對象傳參來說,這是需要特別注意的一點。由於對可變對象的操作會同時影響其他相同引用的變量,對可變對象參數需要謹慎。

       對於不可變對象來說,將其傳遞給一個函數,python會在內存中複製新建一個對象,這樣函數內的變量和函數外的變量就是獨立的,不會相互影響。

       那麼python中有哪些可變對象和不可變對象呢?對於基本的數據類型來說,一些佔據內存較大的對象,比如列表和字典都是可變對象,其他的諸如元組集合等對象是不可變對象。還有pandas中的DataFrame對象以及numpy的ndarray對象都是可變對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章