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

Reply via email to