亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django:堆疊裝飾器

Django:堆疊裝飾器

LEATH 2021-11-16 15:03:40
我有以下信號。是否可以像我在這里那樣“堆疊”這兩個裝飾器?@receiver(signal=charge_succeeded)@transaction.atomicdef create_influencer_transaction(sender, order, charge, **kwargs):    pass
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

是的。


考慮裝飾器的工作方式,這相當于


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只會返回相同的函數。


但是,這里的順序確實很重要(而且您做對了);如果裝飾器是相反的,receiver則會注冊非原子版本,這不好。


查看完整回答
反對 回復 2021-11-16
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號