[New-bugs-announce] [issue45862] Anomaly of eval() of list comprehension
David Pratten
report at bugs.python.org
Mon Nov 22 02:29:08 EST 2021
New submission from David Pratten <david at prattenmail.com>:
Hi
Example "eg def2" works but "eg def4" gives an error?
David
```
emp = [
{
"empno": 7839,
"mgr": 0,
"ename": "KING"
},
{
"empno": 7566,
"mgr": 7839,
"ename": "JONES"
},
{
"empno": 7698,
"mgr": 7839,
"ename": "BLAKE"
}
]
a = [e for e in emp if e["mgr"] == 0]
print('eg 1', [b for b in a])
print('eg 2', eval('[b for b in a]'))
print('eg 3', [e for e in emp for b in a if e["mgr"] == b["empno"]])
print('eg 4', eval('[e for e in emp for b in a if e["mgr"] == b["empno"]]'))
def eval_anomaly():
a_anomaly = [e for e in emp if e["mgr"] == 0]
print('eg def1', [b for b in a_anomaly])
print('eg def2', eval('[b for b in a_anomaly]'))
print('eg def3', [e for e in emp for b in a_anomaly if e["mgr"] == b["empno"]])
print('eg def4', eval('[e for e in emp for b in a_anomaly if e["mgr"] == b["empno"]]'))
eval_anomaly()
```
----------
messages: 406743
nosy: david2
priority: normal
severity: normal
status: open
title: Anomaly of eval() of list comprehension
type: behavior
versions: Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45862>
_______________________________________
More information about the New-bugs-announce
mailing list