2013/6/18 Terry Reedy <tjre...@udel.edu> > On 6/18/2013 5:47 AM, andrea crotti wrote: > >> Using a CouchDB server we have a different database object potentially >> for every request. >> >> We already set that db in the request object to make it easy to pass it >> around form our django app, however it would be nice if I could set it >> once in the API and automatically fetch it from there. >> >> Basically I have something like >> >> class Entity: >> def save_doc(db) >> > > If save_doc does not use an instance of Entity (self) or Entity itself > (cls), it need not be put in the class.
I missed a self it's a method actually.. > > > ... >> >> I would like basically to decorate this function in such a way that: >> - if I pass a db object use it >> - if I don't pass it in try to fetch it from a global object >> - if both don't exist raise an exception >> > > Decorators are only worthwhile if used repeatedly. What you specified can > easily be written, for instance, as > > def save_doc(db=None): > if db is None: > db = fetch_from_global() > if isinstance(db, dbclass): > save_it() > else: > raise ValueError('need dbobject') > > > Yes that's exactly why I want a decorator, to avoid all this boilerplate for every function method that uses a db object..
-- http://mail.python.org/mailman/listinfo/python-list