Challenge - 5 Problems
Resource Management Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of using context manager with file handling
What is the output of this Python code snippet?
Python
with open('test.txt', 'w') as f: f.write('Hello') print(f.closed)
Attempts:
2 left
💡 Hint
Think about what happens to the file after the with block ends.
✗ Incorrect
The 'with' statement automatically closes the file after the block ends, so f.closed is True.
🧠 Conceptual
intermediate2:00remaining
Why use 'with' statement for resource management?
Which of the following best explains why using the 'with' statement is recommended for resource management in Python?
Attempts:
2 left
💡 Hint
Think about what happens if an error occurs inside a 'with' block.
✗ Incorrect
The 'with' statement ensures resources are properly closed even if exceptions happen, preventing leaks.
🔧 Debug
advanced2:00remaining
Identify the resource leak in this code
What is the main problem with this code snippet regarding resource management?
Python
def read_file(filename): f = open(filename, 'r') data = f.read() return data content = read_file('data.txt')
Attempts:
2 left
💡 Hint
Think about what happens to the file after reading.
✗ Incorrect
The file is opened but never closed, which can exhaust system resources if done repeatedly.
📝 Syntax
advanced2:00remaining
Correct syntax for custom context manager
Which option correctly defines a custom context manager class in Python?
Python
class MyResource: def __enter__(self): print('Resource acquired') return self def __exit__(self, exc_type, exc_val, exc_tb): print('Resource released')
Attempts:
2 left
💡 Hint
Check the method names and parameters required for context managers.
✗ Incorrect
The __enter__ and __exit__ methods must have exact names and __exit__ must accept 4 parameters.
🚀 Application
expert3:00remaining
Using contextlib to manage resources
Which option correctly uses the contextlib module to create a context manager that prints messages on enter and exit?
Python
from contextlib import contextmanager @contextmanager def managed_resource(): print('Start') yield print('End')
Attempts:
2 left
💡 Hint
Remember to call the function to get the context manager object.
✗ Incorrect
The context manager must be called with parentheses; the yield separates enter and exit code.