Which of the following statements about the None pattern for default arguments in Python is true?
B
Step-by-Step Solution
Key idea: This is a statement truth question about the None pattern, recognizable by evaluating the properties of None and the pattern's mechanics.
Step 1: Evaluate option A: "None is evaluated at call time" - False. All default arguments, including None, are evaluated at definition time.
Step 2: Evaluate option B: "None is immutable, bounding the default to a safe, unchangeable reference" - True. None cannot be mutated in place, so it safely avoids the shared state trap.
Step 3: Evaluate option C: "requires the function to return None" - False. The pattern dictates the default argument, not the return value.
Step 4: Evaluate option D: "automatically creates a new list... without explicit checks" - False. Python does not automatically create objects; the programmer must explicitly write the <code>if lst is None: lst = []</code> check.
Answer: B