I feel like a better alternative to changing the API to something less intuitive so that you can set the property to a object that has a call property that returns itself, it would have made more sense to use the built-in thing that does exactly what you want to do, i.e. a normal property set to a default in the `__init__` function:

```
def __init__(self, couchdb=None):
    self.couchdb = couchdb or self.document_class.get_db()
```

Then you could have left the calls to `self.couchdb` without parens and set couchdb in the same way except that `FakeCouchDBLoader` wouldn't need a `__call__` function. Thoughts?