Variablen Inhalte

  • Hallo

    Bei meinem Versuch Python etwas kenn zu lernen, hänge ich an einem vermutlich einfachen Problem, vielleicht kann mir ja jemand etwas erklären unter die Arme greifen.
    Was muß ich in meinem Beispiel verändern damit die Variable a nicht immer wieder den Wert 1 annimmt.


    Ich definiere zu Beginn die Variable a als global und gebe ihr den Wert 1, weil ich sonst bei der ersten Verwendung die Fehlermeldung erhalte das sie nicht definiert ist.
    Wenn ich dann in das Feld zum Beispiel 5 eingebe und den Button betätige wird die Funktion aufgerufen.
    Zu Beginn hat a dann logisch 1
    Dann wird sie von der 5 überschrieben
    und anschließend um 1 auf 6 erhöht.

    Wenn ich erneut den Button betätige ist a aber wieder 1.
    Wie kann ich es hinbekommen, dass a bei 6 bleibt bis wieder überschrieben wird.

    Danke
    BYe André

  • 'global a' ausserhalb der Funktion Ber() zu setzen ist Quatsch. Variablen ausserhalb von Funktionen sind automatisch global.
    Möchtest du aber eine Variable ausserhalb einer Funktion verändern musst du diese innerhalb der Funktion global setzen - allerdings ist das kein schöner Weg, arbeite stattdessen lieber mit Ausgaben bzw Rückgaben der Funktionen. Du hast zudem bereits 'return a' in der Funktion also nutz das auch :)

    Also - Unschön:
    [code=php]
    a=1

    def Ber(a):
    global a
    print "Sub"
    print a
    a = xxx.get()
    print a
    a = (int(a) + 1)

    Ber(a)
    print a
    [/php]...Dies am besten gleich wieder aus dem Gedächnis löschen :D

    Besser:
    [code=php]a=1

    def Ber(a):
    print "Sub"
    print a
    a = xxx.get()
    print a
    a = (int(a) + 1)
    return a

    a = Ber(a)
    print a
    [/php]

  • Hi meigrafd

    Okay soweit denke ich, habe ich es verstanden.
    In deiner Erklärung rufst du die Funktion ja mit
    a = Ber(a)
    auf.
    Deshalb erhält a mit dem return den Wert aus der Funktion.

    Wie aber muß ich es anstellen wenn ich die Funktion mit dem Button aufrufe?

    BYe André

Jetzt mitmachen!

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