New submission from David Pratten <da...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue45862>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to