Форум сайта python.su
На языке VBScript часто можно получить информацию о типе COM-объекта, что бывает удобно (например, чтобы быстро найти необходимую информацию в MSDN):
Set obj = CreateObject("ADODB.Connection")
WScript.Echo TypeName(obj)
# -*- coding: cp1251 -*-
import win32com.client
obj = win32com.client.Dispatch("ADODB.Connection")
print type(obj)
Офлайн
В com особо не шарю, так что может не совсем то что надо :)
>>> import win32com.client >>> o=win32com.client.Dispatch('ADODB.Connection') >>> print repr(o) <COMObject ADODB.Connection> >>>
Офлайн
Спасибо, это лучше, чем <type ‘instance’> :).
Офлайн
Хотя… Пользы от этого тоже мало :). Функция repr похоже выдаёт информацию только об объектах, “непосредственно” созданных в скрипте. О возвращаемых вещах она ничего не знает. Например:
# -*- coding: cp1251 -*-
import win32com.client
shell = win32com.client.Dispatch("Shell.Application")
folder = shell.NameSpace("C:\\")
print repr(folder)
Отредактировано (Июль 14, 2007 08:38:08)
Офлайн
сделай dir(folder) и посмотри какие методы/атрибуты есть у этого объекта. может там найдется что-то типа name, type, getname, gettype.
Офлайн
По-моему нужно смотреть в сторону COM Makepy utility.
Подробней можно глянуть здесь http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html
Офлайн
Нужно брать ITypeInfo у IDispatch и потом его изучать. Например, GetDocumentation с индексом -1 дает докстринги для самого объекта, а не его функций.
def getType(disp):
ti = disp._oleobj_.GetTypeInfo(0)
return ti.GetDocumentation(-1)
import win32com.client
shell = win32com.client.Dispatch(“Shell.Application”)
folder = shell.NameSpace(“C:\\”)
print getType(folder)
Офлайн