Ankündigung

Einklappen
Keine Ankündigung bisher.

Items in Funktionen benutzen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Übrigens, wenn man variablen in Funktioen auch ausserhalb der Funktion in der Logik nutzen möchte, muss man diese in der Logik als "global" kennzeichnen.
    Beispiel sie Post #1

    Msinn Könnte man das noch in die Doku zu den Logiken mit unterbringen?

    Kommentar


      #17
      Übergib die Variabel doch einfach an die Funktion sowie üblich und auch bei sh so gemacht

      Kommentar


        #18
        henfri iWenn ich die varieablen übergebe, kann ich sie zwar in der Logik benutzen aber sie ändern sich dann nicht ausserhalb der Logik:

        Code:
        def test2(state, x, y):
            if state == True:
                x = 11
                y = 21
            else:
                x = 10
                y = 20
        
        test2(True, setval1, setval2)
        logger.info('Nach Test 2: '+str(setval1))
        logger.info('Nach Test 2: '+str(setval2))
        test2(False, setval1, setval2)
        logger.info('Nach Test 2: '+str(setval1))
        logger.info('Nach Test 2: '+str(setval2))
        Zuletzt geändert von schuma; 01.01.2019, 12:27. Grund: Edit: neuer Gedanke ;-)

        Kommentar


          #19
          Wenn du es so rum brauchst, dann gib die Werte zurück:
          Code:
          def test2(state):
              if state:
                    return 11, 21
              else:
                    return 10, 20
          
          setval1, setval2 = test2(True)
          Manchmal frage ich mich, ob das hier eigentlich das SHNG oder das Programmiereinsteiger-Forum ist.

          Kommentar


            #20
            Zitat von smai Beitrag anzeigen
            Manchmal frage ich mich, ob das hier eigentlich das SHNG oder das Programmiereinsteiger-Forum ist.
            HiHi, warscheinlich beides!

            Aber mit global gehts auch...

            Kommentar


              #21
              Aber wenn du globale Variablen nutzt, kannste dir die Funktion fast sparen....

              Kommentar


                #22
                Zitat von henfri Beitrag anzeigen
                Aber wenn du globale Variablen nutzt, kannste dir die Funktion fast sparen....
                In der richtigen Logik werden hier dann 8 Variablen gleichzeitig in der Funktion je nach Status gesetzt.

                Der Aufruf an diversen Stellen ind er Logik ist dann nur noch Status(True) oder eben Status (False) anstatt eben jedes Mal an diversen Stellen 8 Variablen zu setzen.
                Es gibt ja immer mehrere Wege nach Rom, aber so finde ich es dann einfach kompakter und übersichtlicher.

                Kommentar


                  #23
                  Globale Variablen...

                  Kommentar


                    #24
                    FYI
                    http://wiki.c2.com/?GlobalVariablesAreBad

                    Kommentar


                      #25
                      Ich habe es in Post#1 angepasst.

                      Vielen Dank noch einmal!

                      Kommentar


                        #26
                        Zitat von schuma Beitrag anzeigen
                        Könnte man das noch in die Doku zu den Logiken mit unterbringen?
                        Die Verwendung globaler Variablen ist generell keine gute Idee. In der Doku würde ich höchtesns eine Warnung davor unterbringen.
                        Viele Grüße
                        Martin

                        Stay away from negative people. They have a problem for every solution.

                        Kommentar


                          #27
                          Zitat von Msinn Beitrag anzeigen

                          Die Verwendung globaler Variablen ist generell keine gute Idee.
                          Ich meinte das mit dem sh übergeben in eine Funktion.

                          Kommentar

                          Lädt...
                          X