Thoughtworks Interview Question

What is the difference between WSGI and ASGI? How can you optimize memory usage in Python? What is monkey patching in Python? Explain key OOP concepts in Python. How do you design a database for a given use case? What is the Global Interpreter Lock (GIL) in Python, and how does it affect multi-threading?