Ctrl K
Python · Junior · Theory

Imagine a function add with a parameter items whose default value is an empty list. The function appends an element to that list and returns it. What happens if you call it twice in a row without passing the second argument?

~4 min by voice

How to approach it

They're checking whether the candidate understands when Python evaluates default parameter values and why a mutable object as a default becomes shared across all calls. Plus whether they can fix it idiomatically.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsA service has a function def add_tag(tag, tags=[]), and after a few calls, the results start containing tags that belong to other calls. What's going on, and how do you fix it? Mid-levelWhat happens when you override __eq__ in your class, and how does that relate to __hash__? How would you make an object that can safely be put in a set and used as a dictionary key? SeniorWhat's the difference between a shallow copy and a deep copy in Python? When does that difference matter? JuniorYou overrode __eq__ on a Money class, and when you tried to put an object in a set, you got TypeError: unhashable type. Why did this happen, and how do you correctly implement equality and hashing? Mid-levelWalk me through how Python looks up an attribute when you access obj.attr. Where do descriptors fit into this, and why does property work the way it does? Senior

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~4 min