python3基礎之函數參數的傳遞方式

文章已更新,最新地址:https://www.fearlazy.com/index.php/post/142.html

 

c++函數傳參有三種方式:分別是按值、按引用和按指針傳遞。簡單的說按值傳遞的方式不會改變傳遞的參數本身,按引用傳遞的方式會改變參數本身(當然可以用const限制),按指針傳遞方式會改變指針指向的對象。那麼python有沒有這樣的特性呢?以下做一些測試:

    1.傳遞數字類型的變量(python裏可能應該叫對象):

    image.png

    從測試代碼中可以看到a並沒有發生改變,函數中的parm(形參)值發生了改變。也就是說調用函數時參數a只是把值賦給了parm。

    

    2.傳遞列表類型的變量:

    image.png

    從測試代碼中可以看出經過函數調用後,a的值發生了改變。改變後的a和函數裏的parm是一樣的。可以理解爲變量a把自己賦給了parm。

 

    3.傳遞字符串類型的變量:

    image.png

    和數字類型一樣,傳遞字符串類型的參數也是按值傳遞。

 

    4.傳遞字典類型的變量:

image.png

    和列表類型一樣,傳遞字典類型的參數是按引用方式傳遞。

 

    5.傳遞元組類型的變量:

    image.png

    在函數中試圖改變傳進來的元組的值,程序崩潰了。  忘了元組是不能改變它的值的....

 

    總結:python中變量可以分爲可變類型(如列表、字典)和不可變類型(如數字和字符串)。可變類型的變量可以看成是按引用傳遞,不可變類型的變量可以看成是按值傳遞。

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