1#執行結果如下:'''函式高階: 不可變和可變引數
'''2
'''3
可變型別引數:列表_list, 字典_dict
4'''5#
問題1:在函式內部,針對引數使用賦值語句,會不會影響呼叫函式時傳遞的 實參變數?
6'''
7—— 不會!無論實參是可變型別還是不可變型別,
8只要針對引數使用賦值語句,會在函式內部 修改區域性變數的引用,
9不會影響到 外部變數的引用。
10'''11#
例1:12
13def
demo (num, num_list) :
14 num = 200
15 num_list = [1,2,3]
1617
(num)
18print
(num_list)
1920
#結論:實參 glnum,glnum_list,經過函式 demo()的賦值語句,其值依然不變!
2122
'''23
問題2:如果傳遞的引數是 "可變型別",在函式內部,使用"方法"修改了引數的值,
24同樣會影響到外部的資料
25'''26#
例2:列表變數呼叫 '+='本質上是在執行列表變數的 extend 方法。
2728
defdemo2 (num_list):
29 num_list.extend([1,2,3])
3031
(num_list)
3233
34if
__name__ == "
__main__":
35 glnum = 99
36 glnum_list = [9,8,7]
37demo(glnum,glnum_list)
3839
(glnum)
40print
(glnum_list)
41print("
------例1,結束--------")
42print("\n"
)4344demo2(glnum_list)
4546
print("
傳遞值是:[9,8,7];現值是:
", glnum_list)
4748
'''>>> 200
[1, 2, 3]
99[9, 8, 7]
------例1,結束--------
[9, 8, 7, 1, 2, 3]
傳遞值是:[9,8,7];現值是: [9, 8, 7, 1, 2, 3]
'''
Python函式之可變型別與不可變型別
在python語言中,string,tuple,number為不可變型別,但是dict,list為可變型別。所謂的不可變型別就是,a 5實際上指的是吧值為5的記憶體指向a,如果在執行a 10相當於又宣告了乙個值為10的記憶體指向a。例如 結果 兩次列印的a的記憶體位址是不同的。但是對於list的可變...
可變和不可變
可變和不可變 不可變 物件所指向的記憶體中的值是不可以改變 不可變型別 int ser float 元組tuple num 10s1 abc print id s1 s1 abcd print id s1 t1 2 5,6 print id t1 t1 2 5 print id t1 可變的 物件所...
python不可變型別和可變型別
python變數可以分為兩種型別 不可變型別 數字 字串 元組 不可變集合 可變型別 列表 字典 可變集合 python所宣告的變數都以物件的形式存在,存在於機器的固定記憶體之中。可以理解為變數名為物件的指標 如宣告a 3,則a指向儲存3的空間,python通過使用計數器的方式來判斷空間的引用情況,...