2017-09-01 25 views
1

我必須使用完全相同的邏輯方法。唯一的區別是它返回不同的值。如何返回協程或字典(某些對象)?

async def job_pooling(self): 
    message['status'] = Text.NEW.value 
    await self.db.store_alert(..) 
    await self.aws.delete_message(..) 
    yield message 


async def job_pooling(self): 
    message['status'] = Comment.NEW.value 
    store_message = await self.db.store_comment(..) 
    await self.aws.delete_message(..) 
    yield store_message 

如何概括它?

+0

你是什麼意思「不工作」?如果您提供了函數的無依賴版本,這也會很有幫助。這會使其他用例的泛化更容易。 :) – MSeifert

+0

@MSeifert我的意思是'協同程序不是None'這是'true'和'dict不是None'這是真的,所以我總是返回'yield store_item' – petrush

+0

@MSeifert更新問題 – petrush

回答

1

好吧,如果你知道的store_item結果類型,你可以用它代替比較None

async def job_pooling(sqs_in, status, store_item, delete_message): 
    message['status'] = status.NEW.value 
    item = await store_item(message) 
    await delete_message(message=message, sqs_url=sqs_in) 
    if isinstance(item, dict): 
     yield item 
    yield message 
相關問題