Junior — Middle
What are the main differences between using a context manager and a standard function for resource management in Python?
sobes.tech AI
Answer from AI
A context manager in Python (using the with statement) provides automatic resource management: opening, using, and guaranteed closing (releasing) of resources, even if an exception occurs during execution.
A standard function without a context manager requires explicit opening and closing of resources, which increases the risk of forgetting to close the resource or improperly handling exceptions.
Example with a context manager:
with open('file.txt', 'r') as f:
data = f.read()
# the file is automatically closed after exiting the block
Without a context manager:
f = open('file.txt', 'r')
try:
data = f.read()
finally:
f.close()
Thus, a context manager simplifies the code and makes it more reliable when working with resources.