[Tutor] Help with vars()
Steven Burr
sburr@mac.com
Sat, 11 Aug 2001 13:18:08 -0700
On Saturday, August 11, 2001, at 03:08 AM, Charlie Clark wrote:
>> But if you really want to use vars, you can:
>>
>>>>> class Blank:
>> ... pass
>> ...
>>>>> article = Blank()
>>>>> article.headline = "Horoscope for Peter"
>>>>> article.text = "Things are looking up!"
>>>>> article.asterisk = "Aquarius"
>>>>> print "\n%(headline)s* \n\n%(text)s\n----\n*%(asterisk)s" %
>> vars(article)
>>
>> Horoscope for Peter*
>>
>> Things are looking up!
>> ----
>> *Aquarius
> so vars() acts like a dictionary type wrapper and as such isn't
> necessary for
> dictionaries themselves?
I'm new to Python myself, so I'm not certain about the terminology and
would welcome an explanation from one of the gurus.
But first allow me to embarrass myself. Based on the context in which
I've seen the term "wrapper" used, I had been thinking that it meant an
object that includes and extends, or allows easier access to, another
object. So for example, if you wrote a class using UserDict and added
new methods for manipulating the dictionary, that would be a dictionary
"wrapper." In 2.2, we'll be able to write class wrappers for
dictionaries and lists without using UserDict or UserList.
vars(), as I understand it, is a function that returns the __dict__
object for any object that contains one. Since a class instance
includes a table of its variables and their values, and the table either
is or can be translated into a dictionary (something else I'm uncertain
about), calling vars on the instance yields the above result. I would
not have thought of that as being a "wrapper," but I could very easily
be all wet.
it-wouldn't-be-the-first-time'ly yours, sburrious