Редактирование, потому что исходный код сбивал с толку.
Я бы предположил, что эти две вещи одинаковы,
#I would use either of these
#Option 1
def bar(*args):
pass
foo = deco(bar)
#Option2
@deco
def foo(*args):
pass
Однако, если у декораторов deco
есть побочные эффекты, это не гарантируется. В частности, это было мое ожидание от декоратора (без побочных эффектов), и я столкнулся с одним с побочным эффектом и был укушен этим,
#Option1
def bar(*args):
pass
foo = register.filter(bar)
#Option 2
@register.filter
def foo(val, arg):
pass
Значит, мои ожидания неверны или Джанго несовместим с лучшими практиками?