首頁常見問題正文

參數(shù)如何通過值或引用傳遞?

更新時間:2023-06-23 來源:黑馬程序員 瀏覽量:

IT培訓班

  在Python中,參數(shù)傳遞可以通過值傳遞或引用傳遞。當你將一個參數(shù)傳遞給一個函數(shù)時,它可以是通過值傳遞還是通過引用傳遞,取決于參數(shù)的類型和如何在函數(shù)中處理它。

  值傳遞意味著在函數(shù)調用時,參數(shù)的值被復制給了一個新的變量。這意味著在函數(shù)內部修改參數(shù)的值不會影響原始變量的值。

  引用傳遞意味著在函數(shù)調用時,參數(shù)的引用(內存地址)被傳遞給了函數(shù)。這意味著在函數(shù)內部對參數(shù)進行的修改會影響原始變量的值。

  接下來我們看一段具體的代碼,演示了參數(shù)如何通過值或引用傳遞:

# 通過值傳遞
def modify_value(x):
    x = 10  # 修改參數(shù)的值
    print("Inside modify_value: x =", x)

a = 5
print("Before modify_value: a =", a)
modify_value(a)
print("After modify_value: a =", a)

  輸出:

Before modify_value: a = 5
Inside modify_value: x = 10
After modify_value: a = 5

  在這個例子中,我們定義了一個函數(shù)modify_value,它接受一個參數(shù)x。在函數(shù)內部,我們將x的值修改為10。然而,在調用modify_value函數(shù)后,原始變量a的值并沒有改變。這是因為參數(shù)x是通過值傳遞給函數(shù)的,所以在函數(shù)內部對x的修改不會影響原始變量a的值。

  如下,我們再看一個通過引用傳遞的例子:

# 通過引用傳遞
def modify_list(lst):
    lst.append(4)  # 修改列表參數(shù)
    print("Inside modify_list: lst =", lst)

my_list = [1, 2, 3]
print("Before modify_list: my_list =", my_list)
modify_list(my_list)
print("After modify_list: my_list =", my_list)

  輸出:

Before modify_list: my_list = [1, 2, 3]
Inside modify_list: lst = [1, 2, 3, 4]
After modify_list: my_list = [1, 2, 3, 4]

  在這個例子中,我們定義了一個函數(shù)modify_list,它接受一個列表參數(shù)lst。在函數(shù)內部,我們向列表中添加了一個新元素4。當我們調用modify_list函數(shù)后,原始列表my_list的值也被修改了。這是因為參數(shù)lst是通過引用傳遞給函數(shù)的,所以在函數(shù)內部對lst進行的修改會影響原始列表my_list的值。

分享到:
在線咨詢 我要報名
和我們在線交談!