2017-09-01 8 views
-2

Ma question est sur la façon de rendre le compilateur traite ma chaîne comme une déclaration exécutable, considérons ma chaîne mystr = '1 + 2 + 3', maintenant la question est quel est le code pour mettre en fonction func alors quand j'exécute la commande suivante func(mystr) je reçois 6 sur mon écran.Comment exécuter une instruction qui était une chaîne initialement

+1

utilisation 'eval (mystr)' –

+0

Résolu, Je vous remercie. – Mehdi

Répondre

3

En utilisant exec() pour plus que les chaînes d'expression:

def func(mystr): 
    exec(mystr) 

func("mystr='1+2+3';print(mystr)") 
+0

Quelle est la différence entre eval() et exec()? –

+0

@franciscosollima [exec()] (https://docs.python.org/3/library/functions.html#exec) prend n'importe quel code Python (phrases) pendant que [eval()] (https: //docs.python .org/3/library/functions.html # eval) juste des expressions. Le doc lié est clair;) –

+1

Merci! Les docs n'étaient pas liés avant, bon ajout! –

0

Vous pouvez utiliser eval (mystr).

print eval('1+2+3') 

vous donne 6