Parameter-Weitergabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
riven
User
Beiträge: 35
Registriert: Mittwoch 27. September 2006, 23:01

Montag 30. Oktober 2006, 12:20

Hallo,

Ich habe folgende Routine:

Code: Alles auswählen

def b(ib_CH1=False, b_CH2=False, b_CH3=False, b_CH4=False):
        if b_CH1:
            result1=channel(1)
            print len(result1)
            print result1
        if b_CH2:
            result2=channel(2)
            print len(result2)
            print result2
        if b_CH3:
            result3=channel(3)
            print len(result3)
            print result3
        if b_CH4:
            result4=channel(4)
            print len(result4)
            print result4

        x, y = [], []
        plot(x, y=False,y2=False,y3=False, y4=False)
Mein Ziel ist es, in plot die Funktionen zu aktivieren, die als Parameter in b gesendet wurden, sprich False soll False bleiben und die in b aktivierten Parameter sollen auch in plot als resultx mit entsprechender y-Zuweisung aktiviert werden.

Danke
Benutzeravatar
Whitie
User
Beiträge: 111
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Montag 30. Oktober 2006, 12:27

Hallo,
ohne näher drauf zu gucken:

Code: Alles auswählen

def b(b_CH1=False, b_CH2=False, b_CH3=False, b_CH4=False):
        if b_CH1:
            result1=channel(1)
            print len(result1)
            print result1
        if b_CH2:
            result2=channel(2)
            print len(result2)
            print result2
        if b_CH3:
            result3=channel(3)
            print len(result3)
            print result3
        if b_CH4:
            result4=channel(4)
            print len(result4)
            print result4
        return [b_CH1, b_CH2, b_CH3, b_CH4]

x, y = [], []
plot(x, b(False,False,False, False))
Gruß, Whitie
Zuletzt geändert von Whitie am Montag 30. Oktober 2006, 12:28, insgesamt 1-mal geändert.
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Montag 30. Oktober 2006, 12:28

Wenn du die Parameter weiterreichen möchtest, dann schick sie einfach weiter, also

Code: Alles auswählen

        plot(x, y, ib_CH1, b_CH2, b_CH3, b_CH4)
x und y werden so auch mit übergeben in der Form wie sie in b angelegt wurden. Aber das sind in der Funktion leere Listen...

Edit:
@Whitie: Durch dein return kommt die Funktion nie beim "plot" an...

Edit2: Ts... einfach Fehler raus editieren während ich sie noch anmäkeln will ;)

Aber x ist immer noch leer, und y wird gar nicht übergeben (warum auch eine leere Liste übergeben?)
BlackJack

Montag 30. Oktober 2006, 13:16

riven hat geschrieben:

Code: Alles auswählen

def b(ib_CH1=False, b_CH2=False, b_CH3=False, b_CH4=False):
        if b_CH1:
            result1=channel(1)
            print len(result1)
            print result1
        if b_CH2:
            result2=channel(2)
            print len(result2)
            print result2
        if b_CH3:
            result3=channel(3)
            print len(result3)
            print result3
        if b_CH4:
            result4=channel(4)
            print len(result4)
            print result4

        x, y = [], []
        plot(x, y=False,y2=False,y3=False, y4=False)
Irgendwie verstehe ich nicht was Du genau möchtest. Also nur ein allgemeiner Hinweis: Das Du jeden Parameter mit dem gleichen Namen mit einer angehängten Zahl benennts, deutet darauf hin, dass man hier besser eine Sequenz statt einzelner Argumente übergeben sollte. Dann lässt sich die Funktion, so wie sie da steht, auch mit einer Schleife vereinfachen:

Code: Alles auswählen

def b(b_flags):
    for i, b_flag in enumerate(b_flags):
        if b_flag:
            result = channel(i + 1)
            print len(result)
            print result
    
    plot(list(), *b_flags)
Aufruf z.B. mit ``b((True, False, True, True))``.
Antworten