New submission from Charles Cazabon: This is a weird one. I've reproduced it with 3 versions of 2.7, including the latest 2.7.13. I didn't find an open bug about this, but I had difficulty crafting a search string for it, so I may have missed something.
Basically, using a `with` statement (maybe any such statement, but using an open file definitely does it, even when I do nothing with it) causes the built-in dict class to stop raising AttributeErrors, which can result in odd bugs. Example: Python 2.7.13 (default, Apr 25 2017, 10:12:36) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> with sys.stderr as foo: ... pass ... >>> {}.nosuchattribute >>> {}.nosuchattribute is None >>> I haven't tried the latest 3.x, but it's definitely still there in 3.2.3: Python 3.2.3 (default, Nov 17 2016, 01:04:00) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> with sys.stderr as foo: ... pass ... >>> {}.nosuchattribute >>> {}.nosuchattribute is None >>> ---------- components: Interpreter Core messages: 292270 nosy: charlesc priority: normal severity: normal status: open title: Using `with` statement causes dict to start papering over attribute errors type: behavior versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30161> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com