What is Magic Methods?
Special double-underscore methods that define how Python objects behave with built-in operations and functions.
Magic methods (dunder methods) customize object behavior. __init__ initializes objects. __str__ defines string representation. __len__ enables len(). __getitem__ supports indexing. __add__ defines + operator behavior.
Other important ones include __enter__/__exit__ (context managers), __iter__/__next__ (iterators), __call__ (callable objects), and __eq__/__lt__ (comparison). Understanding magic methods is key to Pythonic class design.