2009-09-12 6 views
1

Tout d'abord, s'il vous plaît excusez-moi pour toute incohérence dans la tuile de cette question. Il en a probablement, mais ne sait vraiment pas mieux.Comment obtenir le type d'instance d'un objet win32com?

Cette question a été soulevée dans le contexte du contrôle d'iTunes via COM à partir de 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> 

Ce que je voudrais faire est de récupérer 'IiTunes' de itunes et 'IITLibraryPlaylist' de lib. J'ai essayé le type (iTunes) et le type (lib) mais ils ne retournent tous deux que "" et ce n'est pas ce que je cherche.

Merci.

Répondre

1

Malheureusement je n'ai aucune machine Windows à portée de main pour essayer, mais je pense itunes.__class__ est le (OLD_STYLE) classe de l'objet itunes en question, et celle de lib.__class__lib. Donc, en regardant l'attribut __name__ des classes devrait vous donner ce que vous désirez.

Malheureusement, ce sont des classes de style ancien (donc type(...) ne fonctionne pas correctement), mais win32com existe depuis longtemps, bien avant que les nouvelles classes brillantes soient nées en Python 2.2, donc il est entièrement compréhensible, je pense ;-).

+0

Merci. C'était exactement ce que je cherchais! – nunos

Questions connexes