J'utilise Python 2 depuis plusieurs mois maintenant, et j'utilise souvent eval() pour définir dynamiquement des variables. Par exemple:eval() ne fonctionne soudainement pas dans tout mon code python
num_ls = [1,2,3]
let_ls = ['a', 'b', 'c']
what2plot = 'num'
list2plot = eval(what2plot + '_ls')
Aujourd'hui, tout mon code écrit ce jour frappe soudainement une erreur lors de l'utilisation eval().
L'erreur est:
Traceback (most recent call last):
File "", line 1, in list2plot = eval(what2plot + '_ls')
File "/anaconda/lib/python2.7/site-packages/pandas/computation/eval.py", line 266, in eval ret = eng_inst.evaluate()
File "/anaconda/lib/python2.7/site-packages/pandas/computation/engines.py", line 76, in evaluate res = self._evaluate()
File "/anaconda/lib/python2.7/site-packages/pandas/computation/engines.py", line 123, in _evaluate return ne.evaluate(s, local_dict=scope, truediv=truediv)
File "/anaconda/lib/python2.7/site-packages/numexpr/necompiler.py", line 789, in evaluate zip(names, arguments)]
File "/anaconda/lib/python2.7/site-packages/numexpr/necompiler.py", line 686, in getType raise ValueError("unknown type %s" % a.dtype.name)
ValueError: unknown type unicode1792
Vous ne devriez pas utiliser 'eval()' en premier lieu. En outre, vous avez une faute de frappe. Vous avez écrit 'what2pot =" num "' au lieu de 'what2plot =" num "' – stybl
Que voulez-vous dire, vous "utilisez couramment eval()" ?! Vous ne devriez (presque) jamais utiliser eval. – melpomene
"utilise couramment eval() pour définir dynamiquement des variables." **Ne faites pas cela**. Il est lent, inefficace et demande des bogues. –