frage zu win32com modul

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

Hallo,

ich habe eine Frage, ich lade eine com schnittstelle mit

Code: Alles auswählen

import win32com.client
geoip = win32com.client.Dispatch("GeoIPCOMEx.GeoIPEx")
hab ich da nun nur die quelle geöffnet?
muss ich zum verwenden noch einen befehl von win32com eingeben?

Danke
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du hast nun eine Referenz auf das COM-Objekt. Darauf kannst du bereits alle Funktionen ausführen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

ah, ok, danke!
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

gibt es einen befehl um raus zu finden welche funktionen diese schnitstelle bereit stellt?
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

hallo!

wie waers mit 'dir(win32com.client.Dispatch)'

mfg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

danke, die funktion is total geil ,aber ich hab da mal ne frage.

ich verwende die funktion set_db_path, die taucht da bei der ausgabe aber nicht auf. wie kann das sien das ich eine funktion aufrufen kann die da gar nicht vor kommt? oder sind die wo anders abgespeichert?

die funktion lässt sich aufrufen gibt aber nur false zurück!

danke für eure hilfe!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bcit6k hat geschrieben:ich verwende die funktion set_db_path, die taucht da bei der ausgabe aber nicht auf. wie kann das sien das ich eine funktion aufrufen kann die da gar nicht vor kommt? oder sind die wo anders abgespeichert?
Weil ``dir()`` nur die Attribute via Introspection anzeigt, aber pywin32 keine Introspection bietet. Durch dynamischen Lookup ist es aber möglich auf Attribute zuzugreifen, die nicht statisch definiert sind.

Hier mal ein Beispiel, wo man auf Attribute zugreift, die innerhalb von ``dir()`` nicht existieren:

Code: Alles auswählen

In [4]: class D(object):
    def __getattr__(self, name):
        if name == 'set_db_path':
            def f():
                print 'DB-PATH'
            return f
        raise AttributeError()
   ....: 
In [11]: d = D()
In [12]: print dir(d)
['__class__', '__delattr__', '__dict__', '__doc__', '__getattr__', '__getattribute__', 
'__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__setattr__', '__str__', '__weakref__']
In [13]: d.set_db_path()
DB-PATH
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

super, danke :)

das werd ich mir sofort rein ziehen!
Antworten