<p>Now that it's clear <a href="https://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python">what a metaclass is</a>, there is an associated concept that I use all the time without knowing what it really means. </p>

<p>I suppose everybody made once a mistake with parenthesis, resulting  in an "object is not callable" exception. What's more, using <code>__init__</code> and <code>__new__</code> lead to wonder what this bloody <code>__call__</code> can be used for.</p>

<p>Could you give me some explanations, including examples with the magic method ?</p>

A Callable is an object that has the
```
__call__
```
method.  This means you can fake callable functions or do neat things like
Partial Function Application
where you take a function and add something that enhances it or fills in some of the parameters, returning something that can be called in turn (known as
Currying
in functional programming circles).
Certain typographic errors will have the interpreter attempting to call something you did not intend, such as (for example) a string.  This can produce errors where the interpreter attempts to execute a non-callable application.  You can see this happening in a python interpreter by doing something like the transcript below.
```
```
[nigel@k9 ~]$ python
Python 2.5 (r25:51908, Nov  6 2007, 15:55:44) 
[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 'aaa'()    # <== Here we attempt to call a string.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>>
```
```