Alcuni giorni fa stavo cercando in rete e ho trovato un interessante articolo sui dizionari Python. Si trattava di usare le chiavi nel dizionario per chiamare una funzione. In quell'articolo l'autore ha definito alcune funzioni e quindi un dizionario con la chiave esattamente uguale al nome della funzione. Poi ha potuto ottenere un parametro di input dall'utente e chiamare lo stesso metodo (qualcosa come implementare un'interruzione di caso) Successivamente ho realizzato la stessa cosa ma in qualche modo diverso. Voglio sapere come posso implementarlo. Se ho una funzione:Utilizzare una stringa per chiamare la funzione in Python
def fullName(name = "noName", family = "noFamily"):
return name += family
E ora se ho una stringa come questa:
myString = "fullName(name = 'Joe', family = 'Brand')"
C'è un modo per eseguire questa query e ottenere un risultato: JoeBrand
Per esempio qualcosa Ricordo che potremmo dare una stringa alla dichiarazione exec() e lo fa per noi. Ma non sono sicuro di questo caso speciale, e anche io non conosco il modo efficiente in Python. E inoltre sarò così grato di aiutarmi a gestire il valore restituito da tali funzioni, ad esempio nel mio caso, come posso stampare il nome completo restituito da tale funzione?
si funzione è gonna ritorno Nessuno ... utilizzo + al posto di + = – Ant
Per fare questo, l'uso: getattr (myString, 'fullName') (name = 'Joe', family = 'Brand') [vedi domanda duplicata collegata in cima alla pagina] – Stew
[Nota: getattr() viene utilizzato dalla risposta superiore alla domanda che questo post duplica, ma non è menzionato di seguito. Ho pensato che sarebbe stato utile apparire su questa pagina stessa, quindi sto piegando la convenzione contro la risposta alle domande nei commenti.] – Stew