2009-09-12 4 views
1

Прежде всего, пожалуйста, извините меня за любую несогласованность в плитке этого вопроса. Вероятно, есть некоторые, но на самом деле они не знают лучше.Как получить тип экземпляра объекта win32com?

Этот вопрос был поднят в контексте управления iTunes через COM из python.

>>> 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), но они оба только возвращают «», и это не то, что я ищу.

Спасибо.

ответ

1

К сожалению, у меня нет машины Windows, под рукой, чтобы попробовать, но я думаю, что itunes.__class__ является (old_style) класс itunes объекта в вопросе, и lib.__class__ у lib. Поэтому, глядя на атрибут __name__, классы должны дать вам то, что вы желаете.

К сожалению, это классы старого стиля (так что type(...) не работает правильно), но win32com существует в течение долгого времени, начиная с хорошо, прежде чем блестящие классы нового стиля родились в Python 2.2, так что это полностью понятно, я думаю ;-).

+0

Спасибо. Это именно то, что я искал! – nunos