gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:44:31 24 4
gpt4 key购买 nike

我正在尝试在 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 提供的所有可用函数。函数名()。

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

谢谢!!

最佳答案

对于那些感兴趣的人……据我所知,直接“继承”COM 对象属性是不可能的,但您基本上可以通过以下方式定义一个类作为解决方法:

import win32com.client

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

def __setattr__(self, attr, n):
try:
setattr(self.word, attr, n)
except:
super(WORD, self).__setattr__(attr, n)

app = WORD()

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

关于python - 如何在python中定义类并继承COM对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com