2024-04-27 12:44:10 发布
网友
我有以下信号。有没有可能像我在这里那样把这两个装饰师“叠”起来?你知道吗
@receiver(signal=charge_succeeded) @transaction.atomic def create_influencer_transaction(sender, order, charge, **kwargs): pass
是的。你知道吗
考虑到装饰师的工作方式,这相当于
def create_influencer_transaction(sender, order, charge, **kwargs): pass create_influencer_transaction = transaction.atomic( create_influencer_transaction ) create_influencer_transaction = receiver(signal=charge_succeeded)( create_influencer_transaction )
–transaction.atomic将返回一个具有原子性包装逻辑的新函数,但是receiver将只返回相同的函数。你知道吗
transaction.atomic
receiver
但是,这里的顺序确实很重要(而且你做对了);如果decorator是另一种方式,receiver会注册非原子版本,这是不好的。你知道吗
是的。你知道吗
考虑到装饰师的工作方式,这相当于
–
transaction.atomic
将返回一个具有原子性包装逻辑的新函数,但是receiver
将只返回相同的函数。你知道吗但是,这里的顺序确实很重要(而且你做对了);如果decorator是另一种方式,
receiver
会注册非原子版本,这是不好的。你知道吗相关问题 更多 >
编程相关推荐