簡體   English   中英

如何使用 Python 進行條件收益?

[英]How can I do a conditional yield with Python?

我必須重構一些代碼。 原始代碼類似於:

 while (yield _requires_payment(state)):
        did_pass_limit = yield _did_pass_limit(state)
        if not did_pass_limit:
            if existing_count is None:
                yield send_info_log("some stuff")
            yield send_info_log(f"more stuff")

所以我重構為:

    if yield _requires_payment(state):
        yield send_info_log(f"stuff")

如果重要的話,函數定義是:

@dialog(version="1.0")
async def _requires_payment(state):
    return await apply_payment_status_check(state, check_types=["window"])

但這會產生一個問題。 我究竟做錯了什么?

如果你想在那里使用yield作為表達式, 用括號括起來 就像它在你的while條件下一樣。

(在賦值語句中,例如x = yield y ,不需要它,因為它直接使用yield_expression而不是yield_atom 。)

if評估布爾值嘗試:


 if (yield _requires_payment(state)):
        yield send_info_log(f"stuff")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM