On Tue, Jun 28, 2011 at 5:24 PM, Jigar Tanna <[email protected]> wrote: > hey, > > I am new to Python and Django, was going through the concept of decorators > where I came across a special case of using arguments with decorators > Below is the code for memoization where I was looking at the concept... > > cache = {} > def get_key(function, *args, **kw) : > key = '%s. %s: ' % (function. __module__,function. __name__) > hash_args = [ str(arg) for arg in args] > hash_kw = [' %s: %s' % (k, hash(v) ) > for k, v in kw.items() ] > return ' %s:: %s: : %s' % (key, hash_args, hash_kw) > > def memoize(get_key=get_key, cache=cache) : > def _memoize( function) : > print function > def __memoize(*args, **kw) : > key = get_key(function, *args, **kw) > try: > return cache[key] > except KeyError: > cache[key] = function( *args, **kw) > return cache[key] > return __memoize > return _memoize > > @memoize() > def factory(n) : > return n * n > > > # testcase > #print factory(3) > # > # > > > According to some of my collogues it is not a good practice to use > decorators with arguments (i.e. @memoize() ) and instead it is good to just > use @memoize. Can any of you guys explain me advantages and disadvantages of > using each of them > > Thanks ... >
Not to rain too heavily on your parade, but: 1) Usage questions on django go to django-users@ 2) Usage questions on python go to comp.lang.python 3) Only use django-developers@ if you intend on changing how django itself is implemented. 4) Submitting the same question twice in such a short time to the same mailing list is considered rude. This doesn't even look like the django.utils.functional.memoize function. Cheers Tom -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
