如何在python中定义类并继承COM对象属性?

时间:2019-06-10 15:34:24

标签: python class inheritance com

我正在尝试在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

基本上我想做的就是将COM对象继承到我自己的类中,这样我就可以添加一些可以作为XL.function_name()调用的函数/操作,并且还可以使用excelapp使用所有可用的函数。 function_name()。

我意识到我可能会以一种令人困惑的方式问这个问题,因为我对此并不了解很多,对COM对象的了解甚至更少,但是感谢任何反馈或任何人都可以提供的帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人。.据我所知,不可能直接“继承” 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()

然后,该app对象应该具有使用win32com.client.Dispatch命令创建的COM对象的所有功能,并且您将能够向类添加自己的自定义方法。