Ankündigung

Einklappen
Keine Ankündigung bisher.

Items in Funktionen benutzen?

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

  • schuma
    antwortet
    Zitat von Msinn Beitrag anzeigen

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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Ich habe es in Post#1 angepasst.

    Vielen Dank noch einmal!

    Einen Kommentar schreiben:


  • henfri
    antwortet
    FYI
    http://wiki.c2.com/?GlobalVariablesAreBad

    Einen Kommentar schreiben:


  • smai
    antwortet
    Globale Variablen...

    Einen Kommentar schreiben:


  • schuma
    antwortet
    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.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Aber wenn du globale Variablen nutzt, kannste dir die Funktion fast sparen....

    Einen Kommentar schreiben:


  • schuma
    antwortet
    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...

    Einen Kommentar schreiben:


  • smai
    antwortet
    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.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    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 ;-)

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Übergib die Variabel doch einfach an die Funktion sowie üblich und auch bei sh so gemacht

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Ü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?

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Zitat von henfri Beitrag anzeigen
    Dann halt die erste Variante
    Oh, hatte irgenwie übersehen...
    So funktioert es auf jeden Fall!

    Vielen Dank, dann kann es weiter gehen.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Dann halt die erste Variante

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Zitat von henfri Beitrag anzeigen
    (also einfach die Funktion weglassen)
    Neee, die Herausforderung ist ja gerade das in einer Funktion zu machen.
    Wenn das dann klappt kann ich mit der eigentlichen Logik weitermachen.

    Einen Kommentar schreiben:

Lädt...
X