Python中的引數傳遞機制

2021-09-29 21:50:35 字數 1112 閱讀 7658

python中的函式引數傳遞機制都是「值傳遞」。值傳遞就是指將實際的引數物件複製乙份傳入,從而可使引數本身不受影響

def

swap

(a, b)

:# 實現a,b的交換

a, b = b, a

print

("a的值為:"

, a,

'b的值為:'

, b)

a =1

b =2

swap(a, b)

print

('a為'

, a,

'b為'

, b)

當在主程式中呼叫swap()函式時,系統分別為主程式和swap()函式分配兩塊棧區,用於儲存他們的區域性變數。將主程式中的a、b變數的值分別賦值給swap()函式棧區中的a、b引數。此時,系統存在兩個a變數,b比變數,只是存在的棧區不同。由此程式可知,python只是把a, b的值傳入進去,並未對a,b的值進行真正的修改,就相當於把a,b複製了乙份,然後傳入了swap函式,該複製品只在swap函式體內有效。這就是值傳遞的實質當系統開始執行函式時,系統對形參執行初始化,就是把實參變數的值付給函式的形參變數

若想通過函式來修改傳入引數的值,則可以把這些資料報裝成列表或者字典等可變物件再傳入函式中

例如:

def

test

(nums)

: a = nums[0]

nums[0]

= nums[1]

nums[1]

= amy_list =[1

,2,3

,4,5

]test(my_list)

print

(my_list)

此時,成功實現了對傳入引數的修改,但值得注意的是,此時不是把my_list物件直接傳進去!系統還是建立了乙個變數,不過這是乙個引用變數(也就是乙個指標)當需要使用my_list時,通過該引用變數,尋找到my_list的位址,從而進行修改。

python中的 和 引數傳遞機制

python的引數傳遞機制具有值傳遞 int float等值資料型別 和引用傳遞 以字典 列表等非值物件資料型別為代表 兩種基本機制以及方便的關鍵字傳遞特性 直接使用函式的形參名指定實參的傳遞目標,如函式定義為def f a,b,c 那麼在呼叫時可以採用f b 1,c 2,a 3 的指定形參目標的傳...

python高階 函式的引數傳遞機制

物件和變數 python中一切皆物件。在python中,型別屬於物件,變數是沒有型別的,這正是python的語言特性。所有的變數都可以理解是記憶體中乙個物件的 引用 所以,希望大家在看到乙個python變數的時候,把變數和真正的記憶體變數區分開。可變 mutable 和不可變 immutable 物...

C C 中的函式引數傳遞機制

一 函式引數傳遞機制的基本理論 函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。以下討論稱呼叫其他函式的函式為主調函式,被呼叫的函式為被調函式。值傳遞 passl by value 過程中,被調函式的形式引...