Сторона СОМ сервера:
На стороне клиента все значения принимаются.
Необходимо возвращенный результат (OutList) "оставить" в пределах" Питона, для вызова списка другими функциями.
В исходном виде OutList имеет пустой список. Даже "Костыль" в дополнительном блоке через super() возвращает []. Если раскомментить
или
т.е. литерально заполнить список, то возвращается все, что указано в списке.
В динамическом режиме список всегда пуст.
Как возможно "перехватить" значения OutList в процессе выполнения кода?
Python:
import pythoncom
from win32com.server.exception import COMException
import win32com.server.util
import win32com.client.dynamic
import win32gui
import random
class PythonUtilities:
_public_methods_ = ['base']
_reg_clsid_ = "{..............................}"
_reg_desc_ = "for cycle"
_reg_progid_ = "some"
# список всех доступных атрибутов без установки
_readonly_attrs_ = ['revision']
# атрибуты класса которые определяются и используются для передачи значений от клиента
_public_attrs_ = ['NDepVar', ...., 'Log']
Log = "" # Log для передачи клиенту
def base(self, InList):
self.revision = "version 1"
# InList = [1, 2, 3, 4, 5] # для проверки раскомментить
InList = list(InList)
OutList = []
if len(InList) == 0:
return OutList
for index in range(0, len(InList)):
OutList.append(InList[index])
if OutList is None:
return
else:
return OutList
num_pot = PythonUtilities()
value_tot = num_pot.base([])
print(value_tot)
###############################################################################################
# дополнительный блок для проверки
class func_Out:
def valuesForOtherClasses(self):
self.value = PythonUtilities().base([]) # 'blablablablabla' - для проверки поместить вместо = PythonUtilities().base([])
class Bar(func_Out):
def __init__(self):
super(Bar, self).valuesForOtherClasses()
print(self.value)
Bar()
#############################################################################
if __name__ == '__main__':
print("Registering COM Server ")
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities)
Необходимо возвращенный результат (OutList) "оставить" в пределах" Питона, для вызова списка другими функциями.
В исходном виде OutList имеет пустой список. Даже "Костыль" в дополнительном блоке через super() возвращает []. Если раскомментить
Код:
# InList = [1, 2, 3, 4, 5]
Код:
'blablablablabla' - для проверки поместить вместо = PythonUtilities().base([])
В динамическом режиме список всегда пуст.
Как возможно "перехватить" значения OutList в процессе выполнения кода?
Последнее редактирование: