Tech SkillsFunctions

Mutable Default Question Explained

This worked Python Fundamentals practice question tests Functions. Try the answer first, then review why A is the best choice.

Short answer

The correct answer is A. The list can be shared across calls.

Mutable default values are created once at function definition time, so later calls can accidentally share the same list. Use None and create a new list inside. The key is to match the exact action in the prompt to the tool, command, or concept that performs that action directly. Here, A. The list can be shared across calls is the only option that satisfies the scenario without adding unrelated behavior.

The Question

Why is def add(item, items=[]) risky?

AThe list can be shared across callsCorrect
BLists cannot be function arguments
CDefault arguments are always strings
DIt disables imports

Why A is correct

Mutable default values are created once at function definition time, so later calls can accidentally share the same list. Use None and create a new list inside. The key is to match the exact action in the prompt to the tool, command, or concept that performs that action directly. Here, A. The list can be shared across calls is the only option that satisfies the scenario without adding unrelated behavior.

Why the other options are wrong

Option B: Lists cannot be function arguments

Option B does not match the requirement in the prompt. The correct answer is A because Mutable default values are created once at function definition time, so later calls can accidentally share the same list. Use None and create a new list inside.

Option C: Default arguments are always strings

Option C does not match the requirement in the prompt. The correct answer is A because Mutable default values are created once at function definition time, so later calls can accidentally share the same list. Use None and create a new list inside.

Option D: It disables imports

Option D does not match the requirement in the prompt. The correct answer is A because Mutable default values are created once at function definition time, so later calls can accidentally share the same list. Use None and create a new list inside.

Key idea: Functions

Functions questions test whether you can connect a common workflow problem to the right practical command, service, or concept. Instead of memorizing isolated definitions, look for the job being done in the prompt: staging a file, querying rows, running code, persisting container data, checking a service, or choosing the right cloud building block. The best answer usually names the simplest tool that performs that job directly. For Python Fundamentals, the safest study pattern is to read the scenario, underline the action verb, and eliminate answers that solve a different problem. If an option sounds related but changes the scope, adds risk, or describes a different layer of the stack, it is probably a distractor. After choosing an answer, explain why the other three fail; that habit builds the practical judgment these quizzes are meant to measure.

Ready to test the full skill?

Take the free Python Fundamentals quiz and find the exact basics to review next. No signup required.

Practice related questions

Same skill area or adjacent concept. Use these after reviewing the explanation.

Related Python Fundamentals Practice Questions