title: Casting to Int and Float tags: python Three relatively unknown `__dunder__` methods, `__int__` and `__float__`, and `__bool__` define the result of casting to `int`, `float`, and `bool` respectively ```py class A: def __int__(self): return 42 def __float__(self): return 3.14159 def __bool__(self): return True a = A() print(int(a)) # 42 print(float(a)) # 3.14159 print(bool(a)) # True ``` # Dict and List As for `dict` and `list`, these rely in using an iterator obtained via the `__iter__` method: ```py class A: def __iter__(self): return iter([("pi",3.14159),("answer",42)]) a = A() print(dict(a)) # {'pi': 3.14159, 'answer': 42} print(list(a)) # [('pi', 3.14159), ('answer', 42)] ```