1. What is the Global Interpreter Lock (GIL) in Python and how does it impact multithreading?
2. What is the purpose of the `__slots__` attribute in Python classes?
3. Explain the use of the `async` and `await` keywords in Python.
4. What is the purpose of the `@property` decorator in Python?
5. Explain the purpose and use cases of metaclasses in Python.
6. What is the purpose of the `__call__` method in Python?
7. How does garbage collection work in Python?
8. Explain the purpose of the `functools` module in Python.
9. What is the purpose of the `__str__` method in Python?
10. Explain the purpose of the `__init_subclass__` method in Python.