Как определить класс в Python и наследовать свойства COM-объекта? - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь определить новый класс в Python и унаследовать свойства существующего COM-объекта.

Вот мой код:

import win32com.client
excel=win32com.client.Dispatch('Excel.Application')
excelapp.Visible=1 #opens excel window
class XL(excelapp):
    def __init__(self):
        excelapp.__init__(self)
XL.Visible=1 #does not work

В основном все, что я хочуdo наследует COM-объект в свой собственный класс, поэтому я могу добавить некоторые функции / операции, которые я могу просто вызвать как XL.function_name (), а также использовать все функции, доступные с помощью excelapp.function_name ().

Я понимаю, что, возможно, я спрашиваю об этом в замешательстве, потому что я не очень много знаю об этом и еще меньше знаю об объектах COM, но ценю любые отзывы или помощь, которую кто-либо может предоставить!

Спасибо !!

1 Ответ

0 голосов
/ 21 июня 2019

Для тех, кто заинтересован ... из того, что я могу сказать, невозможно напрямую "наследовать" свойства COM-объекта, но вы можете определить класс как обходной путь следующим образом:

class WORD(object):

    def __init__(self):
        self.word = win32com.client.Dispatch("Word.Application")

    def __getattr__(self, n):
        try:
            attr = getattr(self.word, n)
        except:
            attr = super(WORD, self).__getattr__(n)
        return attr


app = WORD()

Тогда объект приложения должен иметь все функциональные возможности COM-объекта, созданные с помощью команды win32com.client.Dispatch, и вы сможете добавлять свои собственные пользовательские методы в класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...