# Message Object Creation File
messageList = []
def getMessageObjectA():
msg = MessageCreator(msgAttribute1, msgAttribute2)
msgList.append(msg)
return msg
def getMessageObjectB():
msg = MessageCreator(msgAttribute3, msgAttribute4)
msgList.append(msg)
return msg
def getMessageObjectC():
msg = MessageCreator(msgAttribute5, msgAttribute6)
msgList.append(msg)
return msg
def clearMessages():
for msg in messageList:
# logic to clear messages
# Test Script #1
import MessageObjects as MsgObj
a = MsgObj.getMessageObjectA()
c = MsgObj.getMessageObjectC()
# Do stuff
MsgObj.clearMessages()
# Do more stuff
# Test Script #223423423
import MessageObjects as MsgObj
e = MsgObj.getMessageObjectE()
u = MsgObj.getMessageObjectU()
y = MsgObj.getMessageObjectY()
# Do stuff
MsgObj.clearMessages()
# Do more stuff
В реальном коде у меня будет более ста функций getMessageObject (). И в некоторых местах я буду вызывать только некоторые из этих функций getMessageObject () в зависимости от того, что необходимо, поэтому у меня есть эти получатели.
Добавление этой строки msgList.append(msg)
внутри каждой функции приводит к ошибке программирования человека ивозможно, излишне прибавляет к длине файла с исходным кодом.
Как мне каждый вызов геттера msgList.append(msg)
? Есть какой-то причудливый способ обернуть всю эту логику в функцию-обертку, о которой я не думаю? Я почти уверен, что декораторы не будут работать, потому что они не видят переменные внутри функции, и мне придется повторять эти декораторы тоже для каждой выполняемой мной функции.
ПРИМЕЧАНИЕ. Ответ должен быть вpython2. Не могу использовать Python3 на работе.
ПРИМЕЧАНИЕ. Намерение состоит в том, чтобы эти getter () находились внутри файла, подобного константам, где наши различные тестовые сценарии вызывают эти геттеры.