检查Python中每行代码后的条件

问题描述 投票:0回答:2

我有一个带有脚本的函数,可以读取一些数据并在 SAP-GUI 中执行一些操作。也许,GUI 中会弹出一个消息窗口,我想捕获该窗口以继续执行脚本。为此,我必须在脚本的每一行之后检查条件(如果出现弹出窗口)。

我有:

def mysap_script():
    command1
    command2
    command3

我必须做但想避免的事情:

def mysap_script():
    command1
    if message_window opens: do some actions
    command2
    if message_window opens: do the same action as before
    command3
    if message_window opens: do the same action as before

有没有一种高效且简单的方法来解决这个问题?

python popupwindow multiple-conditions
2个回答
0
投票

您可以使用检查您需要检查的条件的函数来包装命令。

def wrapped_cmd(cmd):
    if cond:
        something()
    cmd()

然后这样称呼它,就像这样

def mysap_script():
    wrapped_cmd(cmd)

0
投票

看来您的代码可以从 asyncio 中受益。通过使用下面的代码,您将(几乎)同时运行这两个函数。看起来也更干净。

import asyncio

async def mysap_script():
    command1
    await asyncio.sleep(0)
    command2
    await asyncio.sleep(0)
    command3

async def check_window():
    if message_window opens: do some actions
    await asyncio.sleep(0)

async def main():
    await asyncio.gather(count(), check_window())

if __name__ == "__main__":
    import time
    s = time.perf_counter()
    asyncio.run(main())
    elapsed = time.perf_counter() - s
    print(f"{__file__} executed in {elapsed:0.2f} seconds.")
© www.soinside.com 2019 - 2024. All rights reserved.