Now that it's clear what a metaclass is, there is an associated concept that I use all the time without knowing what it really means.
I suppose everybody made once a mistake with parenthesis, resulting in an "object is not callable" exception. What's more, using
A callable is anything that can be called.
The built-in callable (PyCallable_Check in objects.c) checks if the argument is either:
The method named __call__ is (according to the documentation)
Called when the instance is ''called'' as a function
class Foo: def __call__(self): print 'called' foo_instance = Foo() foo_instance() #this is calling the __call__ method