Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #19674
| References | <mailman.5218.1327946109.27778.python-list@python.org> <Xns9FEBE05D32BCCduncanbooth@127.0.0.1> <CAPTjJmqMBpF8TG341Vnfk8eWT8VJq3EgF-_9dnYeKpnPXxGsgA@mail.gmail.com> <CALwzidnpfV_2mQnv33KfZ_WCqTfwahcWfO1fr6A29dGXG0wJ0Q@mail.gmail.com> |
|---|---|
| From | Ian Kelly <ian.g.kelly@gmail.com> |
| Date | 2012-01-31 18:12 -0700 |
| Subject | Re: except clause syntax question |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.5277.1328058796.27778.python-list@python.org> (permalink) |
On Tue, Jan 31, 2012 at 6:09 PM, Ian Kelly <ian.g.kelly@gmail.com> wrote: > On Tue, Jan 31, 2012 at 5:53 PM, Chris Angelico <rosuav@gmail.com> wrote: >> On Wed, Feb 1, 2012 at 9:03 AM, Duncan Booth >> <duncan.booth@invalid.invalid> wrote: >>> Abitrarily nested tuples of exceptions cannot contain loops so the code >>> simply needs to walk through the tuples until it finds a match. >> >> Is this absolutely guaranteed? The C API for CPython provides: >> (Py2) http://docs.python.org/c-api/tuple.html#PyTuple_SetItem >> (Py3) http://docs.python.org/dev/c-api/tuple.html#PyTuple_SetItem >> >> which doesn't have massive warnings on it saying "USE THIS ONLY TO >> INITIALIZE A TUPLE" (compare, for instance, _PyTuple_Resize which does >> carry a similar warning). Is the assumption then that we're all >> adults, and that mutating a tuple is like passing a null pointer to an >> API function (aka "loaded gun in proximity to foot")? > > I don't know why the docs are written the way that they are, but if > you check the code, you can see that PyTuple_SetItem will raise a > SystemError if the reference count is anything other than 1. So I > think that it is only meant to be used with similar caution and > restraint. Incidentally, I *think* that any correctly written C code attempting to nest a tuple inside itself would make the reference count of the tuple be at least 2 at the time of the call, and so it would fail.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
except clause syntax question Charles Yeomans <charles@declareSub.com> - 2012-01-30 12:41 -0500
Re: except clause syntax question Mel Wilson <mwilson@the-wire.com> - 2012-01-30 14:15 -0500
Re: except clause syntax question Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-01-31 00:00 +0000
Re: except clause syntax question Devin Jeanpierre <jeanpierreda@gmail.com> - 2012-01-30 19:25 -0500
Re: except clause syntax question Charles Yeomans <charles@declareSub.com> - 2012-01-31 08:57 -0500
Re: except clause syntax question Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-01-31 14:51 +0000
Re: except clause syntax question Charles Yeomans <charles@declareSub.com> - 2012-01-31 11:23 -0500
Re: except clause syntax question Devin Jeanpierre <jeanpierreda@gmail.com> - 2012-01-31 11:38 -0500
Re: except clause syntax question Charles Yeomans <charles@declaresub.com> - 2012-01-31 12:29 -0500
Re: except clause syntax question Ethan Furman <ethan@stoneleaf.us> - 2012-01-31 08:56 -0800
Re: except clause syntax question Terry Reedy <tjreedy@udel.edu> - 2012-01-31 19:12 -0500
Re: except clause syntax question Charles Yeomans <charles@declareSub.com> - 2012-01-31 19:27 -0500
Re: except clause syntax question Mel Wilson <mwilson@the-wire.com> - 2012-01-31 08:24 -0500
Re: except clause syntax question Charles Yeomans <charles@declareSub.com> - 2012-01-31 13:04 -0500
Re: except clause syntax question Duncan Booth <duncan.booth@invalid.invalid> - 2012-01-31 22:03 +0000
Re: except clause syntax question Chris Angelico <rosuav@gmail.com> - 2012-02-01 11:53 +1100
Re: except clause syntax question Mel Wilson <mwilson@the-wire.com> - 2012-01-31 23:39 -0500
Re: except clause syntax question Ian Kelly <ian.g.kelly@gmail.com> - 2012-01-31 18:09 -0700
Re: except clause syntax question Ian Kelly <ian.g.kelly@gmail.com> - 2012-01-31 18:12 -0700
Re: except clause syntax question Chris Angelico <rosuav@gmail.com> - 2012-02-01 13:46 +1100
csiph-web