GATE DA 2026 Set 1 — Question 50
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MSQ+2 / -0MediumFunctionsFunctions, File & Error HandlingProgramming, Data Structures & AlgorithmsListsData Types & Control StatementsVariables & Memory ManagementPython Syntax & I/O
Programming, Data Structures & Algorithms → Data Types & Control Statements → Functions
Last updated
Question
Consider the given Python program.Which of the following options is/are correct?
def outer():
x = []
def inner(val):
x.append(val)
return x
return inner
f1 = outer()
f2 = outer()
print(f1(10)) # Line P
print(f1(20)) # Line Q
print(f2(30)) # Line R
print(f1(40)) # Line S
Correct answer
(B) Output of Line Q is [10, 20]; (D) Output of Line S is [10, 20, 40]
Solution
The function
outer creates a new list x each time it is called and returns the inner function, which forms a closure over x.1.
f1 = outer(): f1 has its own closure with x = [].2.
f2 = outer(): f2 has a separate closure with a new x = [].3.
print(f1(10)): Appends 10 to f1's x. x becomes [10]. Output: [10].4.
print(f1(20)): Appends 20 to f1's x. x becomes [10, 20]. Output: [10, 20]. (Option B is correct)5.
print(f2(30)): Appends 30 to f2's x (which was empty). x becomes [30]. Output: [30]. (Option C is incorrect)6.
Option A is incorrect because print(f1(40)): Appends 40 to f1's x. x becomes [10, 20, 40]. Output: [10, 20, 40]. (Option D is correct)f1 and f2 have distinct x lists.Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE DA question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on Data Types & Control Statements
2026 Set 1 Q15Consider that the quick sort algorithm is used to sort an array of distinct randomly ordered…2026 Set 1 Q16Consider the given Python program. [code] Which of the following is the correct output of this…2026 Set 1 Q25You are given the following Pre-order and In-order traversals of a Binary Tree T with nodes E, F,…2026 Set 1 Q31Let A be a sorted array containing 1000 distinct integers. You perform a recursive binary search on…2026 Set 1 Q39A recursive function in Python is given. [code] Now, consider the following function call:…