'Nichts' in Funktion zurückgeben?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo liebe Community,

    ich habe eine eigene Klasse und speichere im Programm mehrere Instanzen davon in einer Liste. Nun möchte ich alle erzeugten Instanzen nach einem

    bestimmten Attribut durchsuchen und das passende Objekt in der Funktion zurückgeben. Nur, was gebe ich zurück wenn kein Objekt mit passendem Attribut

    gefunden wird damit eine Abfrage wie:

    Code
        gefundenesObjekt = findeObjektMitAttribut(attr, listeMitObjekten)
        if gefundenesObjekt:
            ...mehr Code

    funktioniert?

    Meine Funktion sieht so aus:

    Code
    def findeObjektMitAttribut(attr, listeMitObjekten):
        for x in listeMitObjekten:
            if x.getAttr == attr:
                return x
        return keinPassendesObjektGefunden # habe probiert: 'None', leere return-Anweisung, typunterschiedliche Objekte wie 0, ' ' ...

    was ist "keinPassendesObjektGefunden" um eine Abfrage

    Code
    if gefundenesObjekt: 

    zu realisieren?

    viele Grüsse Harry

    Einmal editiert, zuletzt von HarryS (30. April 2022 um 11:08)

  • Hallo Harry,

    warum erscheint Dir False keine zielführende Option darzustellen?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (30. April 2022 um 11:16)

  • Hallo,

    wenn die 'if'-Abfrage False liefert, dann ist das doch ok. Die Funktion liefert automatisch 'None' zurück und du kannst dann damit weiter arbeiten.

    Bsp.:

    Füge mal in die Liste '123' noch hinzu und lass es noch mals laufen.

    War das so gemeint?

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Ahh,

    bitte vielmals um Entschuldigung, in meinem Testprogramm gerade eben funktioniert der Vergleich mit

    Code
    if result != None:

    nun. Da war an meinem Testcode was falsch, ein dummer Fehler. Ich hatte zuerst geprüft mit

    Code
    if result:

    Ich mache gerade meine ersten Python Scripte, komme ursprünglich aus der C++ Welt.

    Sorry, danke für die Posts, alles korrekt!

  • Wenn du gerade dabei bist, in Python würde man eher schreiben:

    if result is not None:

    Ansonsten ist es hilfreich sprechende Namen zu verwenden, anstatt 'x' und 'attr'. In Python wird alles klein_mit_unterstrich geschrieben. Ausnahmen sind Konstanten, die GANZ_GROSS und Klassen in PascalCase-Schreibweise.

    Falls du Interesse daran hast:

    https://peps.python.org/pep-0008/

    Weiterhin viel Spaß und Erfolg.

    Wenn das Thema für dich erledigt ist, bitte oben auf "Thema bearbeiten" klicken und dann "Erledigt" auswählen.

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!