Проверка условия после каждой строки кода в Python

#python #popupwindow #multiple-conditions

#python #popupwindow #несколько условий

Вопрос:

У меня есть функция со скриптом, которая считывает некоторые данные и выполняет некоторые действия в SAP-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
  

Есть ли эффективный и простой способ решения этой проблемы?

Ответ №1:

Вы могли бы обернуть команды функцией, которая проверяет условие, которое вам нужно проверить.

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

и вместо этого вызовите это, например

 def mysap_script():
    wrapped_cmd(cmd)
  

Комментарии:

1. Это означает, что я должен передавать каждую команду в качестве аргумента функции def wrapped(cmd) , и результатом будет: def mysap_script():wrapped_cmd(command1) wrapped_cmd (command2)... ?

2. Да, также вы можете немного пофантазировать, обернув каждую команду декораторами. Таким образом, вы можете украсить их и вызвать напрямую.

3. Понятно, но идея состоит в том, чтобы сократить время написания, даже с декораторами мне приходится оборачивать каждую командную строку в функции и вызывать ее отдельно.