32. 下列何者為執行下面 Python 程式碼的正確輸出?
(A) [1] [2]
(B) [1] [1, 2]
(C) [1, 2] [1, 2]
(D) 錯誤:預設參數不合法
答案:登入後查看
統計: A(7), B(11), C(1), D(5), E(0) #3447899
統計: A(7), B(11), C(1), D(5), E(0) #3447899
詳解 (共 1 筆)
#6443955
這個問題考察的是 Python 中函式預設參數的行為。當一個可變物件(如列表、字典)被用作函式的預設參數時,該預設參數在函式定義時只會被建立一次,而不是每次呼叫函式時都重新建立。
-
第一次呼叫 func(1):
- 函式 func 被呼叫,a 的值是 1。
- L 參數沒有被提供,所以它使用預設值 []。這個列表是函式定義時建立的那個列表物件。
- L.append(a):將 1 追加到 L 中。此時 L 變成 [1]。
- return L:返回 [1]。
- print(func(1)) 輸出 [1]。
-
第二次呼叫 func(2):
- 函式 func 再次被呼叫,a 的值是 2。
- 關鍵點:L 參數再次沒有被提供,所以它仍然使用第一次呼叫時使用的那個預設列表物件。而這個列表物件在第一次呼叫後已經變成了 [1]。
- L.append(a):將 2 追加到 L 中。此時 L 變成 [1, 2]。
- return L:返回 [1, 2]。
- print(func(2)) 輸出 [1, 2]。
輸出結果:
[1]
[1, 2]
對應選項 (B)。
0
0