python 函式中引數的傳遞方式(三分鐘讀懂)

2021-10-24 15:19:45 字數 2638 閱讀 8187

python 函式中引數的傳遞方式

def

fn1(a =1)

:# 函式中的(a)是形參 和外面的變數無關 (這裡的是定義函式中指定預設值)

print

("fn1"

, a)

# 這個是區域性變數

a =9

# 這個是全域性變數

fn1(

)# 呼叫函式

print

(a)# 輸出變數的值

fn1 1

9

第乙個實參賦值給第乙個形參,第二個實參賦值給第二個形參…

def

fn2(a, b, c)

:# ↓ ↓ ↓

# fn2(1, 2, 3)

#print

("fn2"

, a, b, c)

fn2(1,

2,3)

# 呼叫函式

fn2 1

23

關鍵字實參:可以不按形參定義的順序去傳遞,而直接根據 形參 名字去傳遞引數

def

fn3(a, b, c)

:print

("fn3"

, a, b, c)

fn3(a =

3, b =

2, c =

1)

fn3 3

21

def

fn4(a, b, c)

:print

("fn4"

, a, b, c)

fn4(

1,c =

2, b =3)

# 實參a沒有指定關鍵字 那麼就會當成位置引數傳入

fn4 1

32

def

fn5(a, b, c)

:print

("fn5"

,a,b,c)

j =999

# int 型別

k =true

# 布林

l ="張三"

# 字串

n =none

# 未定義

m =[1,

2,3]

# 列表

v =# 字典

fn5(j, k, l)

fn5(n, m, v)

fn5 999

true 張三

fn5 none[1

,2,3

]

使用函式演算法的時候就需要把 字串轉化為整數 或者浮點數來進行計算

def

fn6(x)

: x[0]

=10# 這裡修改的是物件裡面的內容 把傳遞進來的變數a裡面的第乙個資料改了,而不是修改變數a的名字

print

("x ="

, x,

id(x)

,"這裡是指向(傳進來的變數的)物件id"

)a =[1

,2,3

]print

(a)fn6(a)

# 呼叫函式 這個函式會修改變數a裡面的資料

print

("a ="

,a,id

(a))

# 檢視變全域性量a被修改後的變化

[1,

2,3]

x =[10,

2,3]

23672200 這裡是指向(傳進來的變數的)物件id

a =[10,

2,3]

23672200

1.傳遞副本,用到淺複製 x.copy()

2.也可以用切片 [:] 不指定起始值,也不指定 也不指定結束值 全要 切到的也是乙個副本

def

fn7(a)

: a[0]

=10print

("a ="

, a,

id(a)

,"這裡的是指向(傳進來的變數的)物件b的id"

)b =[1

,2,3

]fn7(b.copy())

# 淺複製

fn7(b[:]

)# 切到的也是乙個副本

print

("b ="

,b,id

(b),

"這裡的是指向物件變數b的id"

)

# fn7(b.copy()) 傳遞副本,用到淺複製 再進行運算的結果

a =[10,

2,3]

23673256 這裡的是指向(傳進來的變數的)物件b的id

# fn7(b[:]) 切片得到副本 再進行運算的結果

a =[10,

2,3]

23673256 這裡的是指向(傳進來的變數的)物件b的id

# b 原來的 資料和id

b =[1,

2,3]

23673288 這裡的是指向物件變數b的id

Python中函式引數的傳遞

python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...

python中函式引數的傳遞

實際引數按照前後順序依次賦值給形式引數。def party area,person print 晚上聚會 print 地點 area print 參與人員 person print 有了酒,就有了故事.party 皇家一號 全體人員 函式宣告定義時,可以給某個引數設定預設資料,在呼叫執行時 有預設資...

Python函式中的引數傳遞

函式的引數 1 函式的引數是可選的 2 函式需要處理的資料應該通過引數來傳遞 3 函式名後面括號裡的引數被稱為形參,由於它不是實際存在的引數所以又稱虛擬引數 4 呼叫函式時後面括號裡的引數稱為實參 def create fib n fib list 0 1 for i in range n 2 re...