On Apr 11, 2006, at 4:18 AM, Greg Ewing wrote: > The only difference is a syntactic one -- whether you > write it as 'foo' or something else like :foo.
Yeah, my point about signaling intent. (I forgot about automatic interning, so thanks for that reminder.) >> The other >> difference (which you may not think essential) is that strings have >> lots of methods that are *never* relevant to the uses one would >> put a >> symbol. > > I don't see this as a problem. Strings have a lot of > methods that I never use on the vast majority of strings > in my programs, and I don't lose any sleep over it. Well, there's a diff between majority I mostly don't use and *all that are never used*, but YMMV. I don't lose *much* sleep over this. :> >> Nope, :foo and :Foo are different symbols, no doubt about that. > > You miss the point. If you type :Foo when you meant :foo, > no error occurs at that point. Right, nor should they since those are different symbols. > But if you are using a value > bound to the name foo, referring to it as Foo gives an > immediate NameError. Ah, of course. I don't really see that as a benefit here, since the joy of symbols is how lightweight they are. Just write one in place and go. Enumerations and using variables bound to strings as symbols both lose some of that joy since you have to do more work, which equates to me to having less fun. But, obviously, this is one of those things that strikes different people differently. Cheers, Kendall _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com