Я пытаюсь использовать win32com.client.withevents, и я хотел бы иметь возможность передавать значения методу инициализации. Тем не менее, вход для обработчика событий является классом, а не экземпляром класса: < /p>
import win32com.client
#For my application this is what defines "document"
labchart = win32com.client.Dispatch("ADIChart.Application")
document = labchart.ActiveDocument
#This is the definition
ev = win32com.client.WithEvents(document, LabChartEventHandler)
#This is not valid, but is what I want to get to
ev = win32com.client.WithEvents(document, LabChartEventHandler(param1,param2))
< /code>
Можно сделать это потом, но есть ли способ передать аргументы конструктору, кроме как использование ранее определенных переменных, которые находятся в объеме? < /p>
#Workaround, not sure what happens if time elapses between initialization and these calls
ev.param1 = param1
ev.param2 = param2
#Current setup
param1 = 1
param2 = 2
class LabChartEventHandler:
def __init__(self):
#Grabs already defined param1, not ideal (in my opinion)
self.param1 = param1
self.param2 = param2
Подробнее здесь: https://stackoverflow.com/questions/795 ... 32com-clie
Как мне передать аргументы при инициализации обработчика событий с Win32com.client.withevents в Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение