Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #19652
| Subject | Re: except clause syntax question |
|---|---|
| From | Charles Yeomans <charles@declaresub.com> |
| Date | 2012-01-31 12:29 -0500 |
| References | (1 earlier) <4f272f1f$0$29989$c3e8da3$5496439d@news.astraweb.com> <mailman.5243.1328018257.27778.python-list@python.org> <4f27ffd8$0$29989$c3e8da3$5496439d@news.astraweb.com> <440642C3-B9CD-4BC7-AF57-4013238C2C5C@declareSub.com> <CABicbJ+0it37UPXaOinBvp+y46TWBsatHZgoFJEHy3Ehh7YisQ@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.5255.1328030988.27778.python-list@python.org> (permalink) |
On Jan 31, 2012, at 11:38 AM, Devin Jeanpierre wrote: > On Tue, Jan 31, 2012 at 11:23 AM, Charles Yeomans > <charles@declaresub.com> wrote: >> >> On Jan 31, 2012, at 9:51 AM, Steven D'Aprano wrote: >> >>> On Tue, 31 Jan 2012 08:57:31 -0500, Charles Yeomans wrote: >>> >>>> I don't think of a tuple as a container, and I don't think it a >>>> misunderstanding on my part to think this. >>> >>> Well, it is a misunderstanding, because tuples ARE containers. You might >>> as well say "I don't think of boxes as containers". What exactly are they >>> if not containers? >> >> >> Tuple is a heterogenous datatype that allows one to define objects ad hoc. That is to say, a tuple represents a single thing distinct from its components. For example, suppose you need to represent a location in text by line number and offset within a line. A tuple object makes it easy to do so without writing a class having no methods other than a constructor. Here, the components, a line number and an offset, define a new object distinct from the pieces. >> >> One can certainly view a tuple as a list, just as one can view a string as a list of characters, and sometimes that's useful; the Python dictum "there should only be one way to do it" doesn't imply that there is only one way to think of it. >> >> Nor am I the only person who sees such a distinction between tuple and list. > > Perhaps it'd be useful to look at how the Python language reference > defines containers? > > Quote: > > Some objects contain references to other objects; these are called > containers. Examples of containers are tuples, lists and dictionaries. > The references are part of a container’s value. In most cases, when we > talk about the value of a container, we imply the values, not the > identities of the contained objects; however, when we talk about the > mutability of a container, only the identities of the immediately > contained objects are implied. So, if an immutable container (like a > tuple) contains a reference to a mutable object, its value changes if > that mutable object is changed. > > End quote. > (Offtopic: How do I do an external block quote appropriately in an email?) > > Tuples are most certainly containers, precisely _because_ they're an > ad-hoc way to define objects, where the only purpose of the object is > to contain the values inside the tuple. > > But these are just words and it's beside the point. We should talk of > things as if the word "container" didn't matter, because I don't think > that's what you meant, but neither do I want to put words in your > mouth. > > My interpretation is that you see tuples as an object where you can > get meaningfully things by field, rather than just grab arbitrarily > from a bag of things. This isn't the only way they are used, see the > except statement (hee) and their use as keys in dictionaries. But it > is true that their immutable length makes them very well suited to the > task of representing product types. I had read that bit of documentation, and don't entirely agree with it. Certainly many objects contain references to other objects, but are not considered containers. And I claim that tuples are most certainly not containers, when they are used to define an object as a collection of other objects, like the text-location example I offered earlier. On the other hand, it is certainly true that tuples quack like containers, as do strings. Charles Yeomans
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