Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.python > #5988

Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse.

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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