2016-05-22 8 views
-1

wie könnte ich den Wert click_type im Ausdruck unten bekommen, wie ich sie zu einem späteren Zeitpunkt des Skripts vergleichen möchte?Get Value von einem Lambda-

cc.on_button_single_or_double_click_or_hold = lambda channel, click_type, was_queued, time_diff: \ 
     print(click_type) 
+0

Können Sie bitte den Kontext angeben? Wann geben Sie die Eingabe für die Lambda-Funktion? haben Sie schreiben die obige Zeile selbst/kopieren Sie es von irgendwo? – Yaron

+0

Ich benutze eine Bibliothek und bin in der Lage, den Wert von click_type nur durch den obigen Code zu erhalten. Ich möchte das mit 3 verschiedenen Strings vergleichen können. wie kann ich das tun – Ossama

+0

Ich habe diese Arbeit cc.on_button_single_or_double_click_or_hold = Lambda-Kanal, click_type, was_queued, time_diff: print ("1-Klick"), wenn str (click_type) == 'ClickType.ButtonSingleClick' else print ("Doppelklick") wenn str (click_type) == 'ClickType.ButtonDoubleClick' else print ("Taste gehalten") aber ich bin begrenzt – Ossama

Antwort

0

Überall, wo Sie ein Lambda verwenden können, können Sie auch eine Funktion definieren. Wie wäre es damit?

def record_click(click_type=None): 
    """ 
    Save each click seen in a list 
    """ 
    try: 
     cache = record_click.cache 
    except AttributeError: 
     record_click.cache = [] 
    if click_type is not None: 
     cache.append(click_type) 
    return cache 

def handle_click(channel, click_type, was_queued, time_diff): 
    """ 
    Report each click, then record it for later 
    """ 
    print(click_type) 
    record_click(click_type) 

cc.on_button_single_or_double_click_or_hold = handle_click 

An anderer Stelle im Code.

def foobar(...): 
    """ 
    Look at the most recent click 
    """ 
    click_list = record_click() 
    if click_list[-1] == ???: 
     do something 

Die Funktion record_click speichert eine Liste der Klicks, wie sie kommen in Wenn Sie es ohne Argumente aufrufen, wird die Liste an Sie zurück. click_list [-1] erhält den letzten Klick, den letzten in der Liste.

Verwandte Themen