Сторона СОМ сервера:
	
	
	
		
На стороне клиента все значения принимаются. 
Необходимо возвращенный результат (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 в процессе выполнения кода?
			
				Последнее редактирование: 
				
		
	
										
										
											
	
										
									
								 
				
		