如何得到实例类型的win32com对象?
题
首先,请原谅我的任何不一致的瓷砖的这个问题。它可能有一些,但真的不知道更好。
这个问题提出了在上下文的控制的iTunes通过COM从蟒蛇。
>>> itunes = win32com.client.Dispatch("iTunes.Application")
>>> itunes
<win32com.gen_py.iTunes 1.12 Type Library.IiTunes instance at 0x27248400>
>>> lib = itunes.LibraryPlaylist
>>> lib
<win32com.gen_py.iTunes 1.12 Type Library.IITLibraryPlaylist instance at 0x27249880>
什么我想要做的是找回'IiTunes'从itunes和'IITLibraryPlaylist'从lib。我已经尝试类型(itunes)和类型(lib),但他们都只有返回","这不是我期待的。
谢谢。
解决方案
不幸的是我手头没有Windows机器可以尝试,但我认为 itunes .__ class __
是 itunes
对象的(old_style)类,而 lib .__ class __
lib
。因此,查看类的 __ name __
属性应该可以满足您的需求。
遗憾的是,这些是旧式的类(因此 type(...)
无法正常工作),但win32com已经存在了很长时间,从闪亮的新版本开始 - 样式类诞生于Python 2.2中,所以它完全可以理解,我认为; - )。
其他提示
这主要原因错误的属性是因为你COM-服务器已经转移到结合(动态),以早日结合(静态)。
- 在延迟结合,每当一方法是所谓的目的是查询方法以及如果成功,那么呼叫。
- 在早期的结合,信息对象的模式是预先确定的类型提供的信息对象的话。早结合使用的MakePy.此外,早期的结合是情况的敏感性。
尝试:
itunes = win32com.client.dynamic.Dispatch("iTunes.Application")
这将迫使COM服务器上设置重点放在动态的模块,它应该给你的只有COM目的iTunes。
不隶属于 StackOverflow