Iterable objects using __iter__ and __next__ Sequences using __len__ and __getitem__Containers using __contains____setitem__, __getitem__ for dictCallable objects using __call__