title: 'What is magic about __len__()?
body: <p>So a list object does not have a simple length attribute <code>len</code> but rather the "magic" <code>__len__()</code>. Why is it preferred to use the function <code>len()</code> on a list rather than its attribute? Does the function <code>len()</code> not simply query <code>__len__()</code>? Why that detour and not have <code>my_list.len()</code>? </p>