#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. Понятно, но идея состоит в том, чтобы сократить время написания, даже с декораторами мне приходится оборачивать каждую командную строку в функции и вызывать ее отдельно.