首先,请原谅我在这个问题的内容中有任何不一致之处。它可能有一些,但真的不知道更好。
这个问题是在从python通过COM控制iTunes的背景下提出的。
>>> 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>
我想要做的是从iTunes中检索' IiTunes ',从lib中检索' IITLibraryPlaylist '。我尝试过类型(itunes)和类型(lib),但它们都只返回“”而这并不是我想要的。
感谢。
答案 0 :(得分:1)
不幸的是我手边没有Windows机器可以尝试,但我认为itunes.__class__
是itunes
对象的(old_style)类,而lib.__class__
是lib
的{{1}}类。 }}。因此,查看类的__name__
属性应该可以满足您的需求。
遗憾的是,这些都是旧式的类(因此type(...)
无法正常工作),但win32com已经存在了很长时间,就在Python 2.2中出现闪亮的新式类之前,我觉得这完全可以理解; - )。
答案 1 :(得分:0)
此属性错误的主要原因是因为您的COM服务器已从后期绑定(动态)更改为早期绑定(静态)。
尝试:
logspace
这将强制COM服务器将焦点设置在动态模块上,该动态模块应仅向您提供iTunes的COM对象。