2016-06-18 12 views
1
possibleRequests = ['test', 'test1'] 

def inboxReader(): 
     global inbox 
     tempInbox = [] 
     tempInbox = inbox.inboxMessage #inboxMesage remains filled? 
     print(inbox.inboxMessage, 'inboxReader') 
     i = 0 
     while (i < len(tempInbox)): 
      if (tempInbox[i] in possibleRequests): 
       print('THIS IS WORKING') 
      #print(i) 
      i+=1 

Ich möchte in der Lage sein, mögliche Anfragen auf eine Methode zu zeigen, anstatt eine lange Liste von if Statements zu haben. Was kann ich tun, um eine Variable auf eine Methode zu richten und sie auszuführen?wie man auf eine Methode verweist Variable python

Cheers,

Marc

+0

Ich würde weitere Informationen wie, was ist inbox.inboxMessage? eine Liste? Wo möchten Sie, dass mögliche Anfragen auf eine Methode zum Ausführen hindeuten, anstatt eine lange Liste von if-Statements zu haben? – Aquiles

+0

Sie können Funktionen (und Methoden) in Variablen speichern (z. B. 'f = inboxReader; f()') .. – thebjorn

+0

Inbox ist eine Klasse, die ich ein Array nennen. Wie würde ich tun, was Thebjorn sagte? es scheint das Ding zu sein, das ich suche –

Antwort

2

Sie können zunächst ein Wörterbuch der Funktionen beziehen sich dann auf sie mit tempInbox [i] erstellen. Beispiel-Code unten:

def func_a(x): 
    return x 

def func_b(x): 
    return x*10 

tempInbox = (2,3) 

fn_dict = {"a":func_a,"b":func_b} 
print fn_dict["a"](tempInbox[0]) # returns 2 
print fn_dict["b"](tempInbox[1]) # returns 30 
+0

genial das ist genau das, was ich brauche –

+0

es funktionierte perfekt Prost Mann –

Verwandte Themen