Python 函式引數傳遞方式

2022-05-27 08:09:14 字數 885 閱讀 3073

引數(自變數)在python裡都是按引用傳遞,也就是傳遞的是變數位址,(變數就是位址,沒有型別,而關聯的物件是有型別的)

但是對於不可變變數,在函式內修改會申請新的記憶體空間,所以對外層函式沒有影響,

對於list變數,相當於操作同一塊記憶體,則會影響外層函式。

#!/usr/bin/python  

# 可寫函式說明  

def changeme( mylist ):  

"修改傳入的列表"  

print "函式內取值: ", mylist  

return  

# 呼叫changeme函式  

mylist = [10,20,30];  

changeme( mylist );  

print "函式外取值: ", mylist  

傳入函式的和在末尾新增新內容的物件用的是同乙個引用。故輸出結果如下:

函式內取值:  [10, 20, 30, [1, 2, 3, 4]]  

函式外取值:  [10, 20, 30, [1, 2, 3, 4]]  

好,看到這裡,自己親手測試一下,**: 

def printme(age,str):  

str = 'str changed!'  

age=25

print age,str  

return  

str = 'ori str'  

age = 23  

printme(age,str)  

print age,str  

輸出結果:

25 str changed!  

23 ori str  

Python 函式引數的傳遞方式

引數的型別 python函式的不定引數主要有三種方式 傳入的引數將以元組形式存放在args中。1 傳入引數 1,2,3 def func args print args func 1,2,3 輸出 1,2,3 2 直接將乙個列表的所有元素當作不定引數傳入 1,2,3 def func args pr...

python引數傳遞方式

如果函式接收到的引數是乙個可變物件 類型別,列表,字典 就會改變物件的原始值。如果函式接收到的引數是乙個不可變物件,即基本資料型別 數值型,字串,布林 就不會改變物件的原始值。無論什麼引數,都是傳引用,只不過基本資料型別的賦值其實是重新構造並指向了乙個新的物件,記憶體位址不一樣,可以用id 來查詢記...

python引數傳遞方式

python中一切皆物件,函式中引數傳遞的是物件的引用。1在函式中改變變數指向的物件,即指向不同物件。當在函式中修改傳遞進來的變數指向另乙個物件時,實參的物件不會改變。def fun num,l,d num 123 l 1,2,3 d print inside num f,l s,d s num,l...