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

詳解 (共 1 筆)

#6443955

這個問題考察的是 Python 中函式預設參數的行為。當一個可變物件(如列表、字典)被用作函式的預設參數時,該預設參數在函式定義時只會被建立一次,而不是每次呼叫函式時都重新建立。

  1. 第一次呼叫 func(1):

    • 函式 func 被呼叫,a 的值是 1。
    • L 參數沒有被提供,所以它使用預設值 []。這個列表是函式定義時建立的那個列表物件。
    • L.append(a):將 1 追加到 L 中。此時 L 變成 [1]。
    • return L:返回 [1]。
    • print(func(1)) 輸出 [1]。
  2. 第二次呼叫 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