我正在尝试在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对象的了解甚至更少,但是感谢任何反馈或任何人都可以提供的帮助!
谢谢!
答案 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对象的所有功能,并且您将能够向类添加自己的自定义方法。