decorator to fetch arguments from global objects

Terry Reedy tjreedy at udel.edu
Wed Jun 19 12:44:42 EDT 2013


On 6/19/2013 4:03 AM, Wolfgang Maier wrote:
> Wolfgang Maier <wolfgang.maier <at> biologie.uni-freiburg.de> writes:
>
>>
>> andrea crotti <andrea.crotti.0 <at> gmail.com> writes:
>>
>>> 2013/6/18 Terry Reedy <tjreedy <at> udel.edu>
>>>
>>> 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')
>
> Another suggestion, without knowing too much about your code's architecture:
> why not *initialize* your Entity instance with a db_out attribute, so you do
> Terry's db checking only in one central place - Entity's __init__ method?

Your pair of posts pretty much say what I was trying to get at. If 
Entity does not prepresent anything, it should not exist, and the 
'methods' should be functions with boilerplate factored out. If entity 
does represent anything, it should be the parameter common to all 
methods, the db. I had not really cognized before that an advantage of 
defining a class is to setup and validate the central object just once.

It is still not clear to me why db should ever by bound to None. That 
must have something to do with the undisclosed context.

-- 
Terry Jan Reedy




More information about the Python-list mailing list