繁体   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