On 2010/11/02 1:30, Nick Coghlan wrote:
On Tue, Nov 2, 2010 at 2:10 AM, Hirokazu Yamamoto
<ocean-c...@m2.ccsnet.ne.jp> wrote:
Does this really cause resource warning? I think os.popen instance
won't be into traceback because it's not declared as variable. So I
suppose it will be deleted by reference count == 0 even when exception
occurs.
Any time __del__ has to close the resource triggers ResourceWarning,
regardless of whether that is due to the cyclic garbage collector or
the refcount naturally falling to zero. In the past dealing with this
was clumsy, so it made sense to rely on CPython's refcounting to do
the work. However, we have better tools for deterministic resource
management now (in the form of context managers), so these updates
help make the standard library and its test suite more suitable for
use with non-refcounting Python implementations (such as PyPy, Jython
and IronPython).
Cheers,
Nick.
Thank you for reply. Probably this is difficult problem. I often
use with statement, but it's also true sometimes I feel this warning is
a bit noisy. Is there a way to turn this off?
C:\Documents and Settings\Ocean>py3k
Python 3.2a3+ (py3k, Nov 3 2010, 00:27:28) [MSC v.1200 32 bit (Intel)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> open("a.py").read()
__main__:1: ResourceWarning: unclosed file <_io.TextIOWrapper
name='a.py' encodi
ng='cp932'>
'\nimport timeit\n\nt =
timeit.Timer("""\nos.stat("e:/voltest/lnk")\n""", """\ni
mport os\n""")\n\nprint(t.timeit(1000))\n\n'
[49593 refs]
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com