Seite 1 von 1
was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Mittwoch 2. Januar 2019, 21:36
von Erhy
Hallo!
Newbee - möchte mit Python COM Libraries nutzen und habe
comtypes importiert.
dabei stehen vielerlei Funktionen zur Verfügung, die
self
in der Paramaterliste haben z.B.
Code: Alles auswählen
Myapp.Application.IProvideClassInfo2_GetGUID( self, dwGuidKind )
Was wäre für
self vernünftig, wenn ich diese Funktion aufrufen möchte
?
Danke für Tipps
Erhy
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Mittwoch 2. Januar 2019, 21:50
von __blackjack__
@Erhy: Gar nichts, das ist das Objekt *selbst* auf dem die Methode aufgerufen wird. Das wird beim Aufruf automagisch übergeben.
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Mittwoch 2. Januar 2019, 23:25
von Erhy
bekomme aber Fehler, wenn ich nur einen Parameter übergebe
z.B.:
IProvideClassInfo2_GetGUID() missing 1 required positional argument: 'dwGuidKind'
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Mittwoch 2. Januar 2019, 23:53
von pillmuncher
@Erhy: Du musst natürlich vorher ein Exemplar (manchmal auch Instanz genannt) der Klasse MyApp.Application erzeugen. Wenn du den vorhergehenden Satz nicht verstehst, solltest du zuerst das offizielle Python-Tutorial durcharbeiten.
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Donnerstag 3. Januar 2019, 00:02
von Erhy
zu diesem Programmpunkt gibt es noch keine Instanz
mein Code davor ist:
plGUID = "{D918CDCE-4561-4B8D-9A35-6E599D124E3C}"
tlb_id = comtypes.GUID(plGUID)
plInterface = comtypes.client.GetModule((tlb_id, 1, 0))
#now I can import the Typlib
import comtypes.gen.Myapp as Myapp
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Donnerstag 3. Januar 2019, 00:17
von __blackjack__
@Erhy: Der Import ist ungünstig geschrieben. Das würde man ``from comtypes.gen import Myapp`` schreiben. Das ``as`` ist dazu da Werte aus Modulen *umzubenennen* nicht um da noch mal den gleichen Namen zu schreiben, an den das in dem Modul sowieso schon gebunden ist.
Re: was Übergeben wenn ein Funktionsparameter self heißt?
Verfasst: Donnerstag 3. Januar 2019, 01:53
von pillmuncher
Erhy hat geschrieben: Donnerstag 3. Januar 2019, 00:02
zu diesem Programmpunkt gibt es noch keine Instanz
Eben deswegen musst du eine erzeugen. Und dann darauf deine Methode mit passendem Argument aufrufen.