Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.python > #5988
| From | "Peter J. Holzer" <hjp-usenet3@hjp.at> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. |
| Date | 2023-06-11 22:06 +0200 |
| Organization | LUGA |
| Message-ID | <slrnu8caaf.ikjc.hjp-usenet3@trintignant.hjp.at> (permalink) |
| References | <u64v9c$2041$1@news1.tnib.de> <e34fbaa8-14b6-b8df-b2f9-40b772fc8352@goebel-consult.de> <u6580j$2jqk$1@news1.tnib.de> |
On 2023-06-11 19:41, Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
> Hartmut Goebel <h.goebel@goebel-consult.de> wrote:
>>Am 11.06.23 um 19:12 schrieb Marc Haber:
>>> | def on_connect(self, client, userdata, flags, rcode):
>>> | client.subscribe('tele/wama/SENSOR')
>>> [_]
>>> | client = mqtt.Client()
>>> | client.on_connect = on_connect
>>
>>Diese Zeile muss lauten:
>>
>> client.on_connect =*self.*on_connect
>>
>>Es wundert mich, dass Dein Code überhaupt funktioniert, denn
>>"on_connect" ist nicht definiert. Oder hast Du das nur zu viel gekürzt?!
>
> Der Code hat nicht funktioniert, das hatte ich gar nicht probiert weil
> ich ja wusste dass da irgendwas nicht passt.
>
> Kannst Du mir erklären, warum das funktioniert
Ich bin mir nicht ganz sicher, was Du mit "das" meinst, aber ich
vermute:
> obwohl die Memberfunktion den zusätzlichen self-Parametrer hat?
Die Expression self.on_connect ergibt eine "bound method". Die ist also
jetzt an das Objekt gebunden, und wenn man aufruft, wird das gebundene
Objekt an seine Methode übergeben.
Vergleiche:
#!/usr/bin/python3
class C:
def m(self, *args, **kwargs):
print(self, args, kwargs)
o = C()
print(o)
f = o.m
print(f)
f(1, 2, 3)
f(1, x=2, y=3)
Das ist auf den ersten Blick überraschend, aber »o.m()« ist ja
syntaktisch nichts anderes als »(o.m)()«, also sollte man das in
»f = o.m; f()« zerlegen können. Und so ist es auch.
hp
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Marc Haber <mh+usenetspam1118@zugschl.us> - 2023-06-11 19:12 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Hartmut Goebel <h.goebel@goebel-consult.de> - 2023-06-11 20:52 +0200
Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Marc Haber <mh+usenetspam1118@zugschl.us> - 2023-06-11 21:41 +0200
Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2023-06-11 22:06 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Hartmut Goebel <h.goebel@goebel-consult.de> - 2023-06-11 22:09 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Stefan Clauß <st_clauss@gmx.de> - 2023-06-21 14:01 +0200
csiph-web