
Am 11.06.23 um 21:41 schrieb Marc Haber:
Kannst Du mir erklären, warum das funktioniert obwohl die Memberfunktion den zusätzlichen self-Parametrer hat?
Nicht so richtig — also nicht von der Sprachdefinition her :-) Aber die Methode ist an das Objekt/Instanz gebunden:
amon.on_connect <bound method ApplianceMonitor.on_connect of <__main__.ApplianceMonitor object at 0x7f560d9ecee0>>
Das impliziert, dass die Instanz als erster Parameter übergeben wird. https://docs.python.org/3/tutorial/classes.html#method-objects erklärt dann doch noch was: "amon.on_connect" liefert eben nicht die Funktion "ApplianceMonitor.on_connetct", sondern die Methode "on_connect" für ("bound to") die Instanz "amon". Da steckt quasi "self" als erster Parameter mit drin. Ähnliches könntest Du erreichen mit functools.partial(ApplianceMonitor.on_connect, anom) -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: https://www.goebel-consult.de/blog/2021/debugging-python-_frozen_importlib/ Kolumne: https://www.goebel-consult.de/blog/cissp-gefluester/2012-04-compliance-bring...