Python 函數的值傳遞和引用傳遞詳解 [Python Function][Python 值傳遞][Python 引用傳遞][Python 形式參數(形參)][Python 實際參數(實參)]

您的“關注”和“點贊”,是信任,是認可,是支持,是動力…

如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。

1 Python 實際參數和形式參數

  • 形式參數:簡稱形參,在定義函數時,函數名後面小括號中自定義的參數就是形式參數。
  • 實際參數:簡稱實參,在調用函數時,函數名後面小括號中傳入的參數值就是實際參數。

舉例如下所示:

# 在定義函數時,函數名後面小括號中自定義的參數就是形式參數。
def info(name, age, gender):  # name、age、gender 三個形式參數
    print('姓名:', name, ';年齡:', age, ';性別:', gender)


# 在調用函數時,函數名後面小括號中傳入的參數值就是實際參數。
info('碼農阿杰', '18', '男')  # 傳入的 '碼農阿杰', '18', '男',爲三個實際參數

運行結果:

姓名: 碼農阿杰 ;年齡: 18 ;性別: 男

2 Python 值傳遞和引用傳遞

2.1 值傳遞和引用傳遞概述

Python 值傳遞和引用傳遞是根據實際參數的類型不同進行區分的,如下所示:

  • 值傳遞:指的是實參類型爲不可變類型(數字、字符串、元組);
  • 引用傳遞(或叫地址傳遞):指的是實參類型爲可變類型(列表,字典,set 集合)。

2.2 值傳遞和引用傳遞的區別

值傳遞和引用傳遞的區別如下所示:

  • 函數參數進行值傳遞後,若形參的值發生改變,不會影響實參的值;
  • 函數參數進行引用傳遞後,若形參的值發生改變,實參的值也會一同改變。

舉例如下所示:

def sum(num):
    num += num  # 改變形參值
    print('形參值爲:', num)


print('---- 值傳遞 ----')
str_demo = '阿杰'  # 傳入字符串,代表值傳遞
print('str_demo的值爲:', str_demo)
sum(str_demo)
print('實參值爲:', str_demo)


print('---- 引用傳遞 ----')
list_demo = [1, 2, 3]  # 傳入列表,代表引用傳遞
print('list_demo的值爲:', list_demo)
sum(list_demo)
print('實參值爲:', list_demo)

運行結果:

---- 值傳遞 ----
str_demo的值爲: 阿杰
形參值爲: 阿杰阿杰
實參值爲: 阿杰
---- 引用傳遞 ----
list_demo的值爲: [1, 2, 3]
形參值爲: [1, 2, 3, 1, 2, 3]
實參值爲: [1, 2, 3, 1, 2, 3]

【友情鏈接】

微信公衆號:碼農阿杰

博客園

【參考資料】

Python 官網

Python 3.8.2 documentation

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