|
Using a Python dictionary as a holder of object attributes
Have a great bank holiday, folks. For any sad (or happy) Python programmers out there, here's a simple example of __getattr__ in use. I've got an object of type thingy with all its atributes held in a dictionary, but I wanted to access them as if each was a separate attribute. "I couldn't find a simple example elsewhere, so I wrote one"
"""Using a dictionary as an attribute handler in Python"""
class thingy:
def __init__(self,indict):
self.stuff = indict
def __getattr__(self,which):
return self.stuff.get(which,None)
about = {"colour":"blue", "type":"flipchart marker"}
markerpen = thingy(about)
print markerpen.colour
print markerpen.age
Further examples at our module pages or learn more with us on our Python course
(written 2005-04-30 14:09:07)
Associated topics are indexed under Y112 - Python - Objects - Intermediate
Some other Articles
Dentist's Waiting Room SyndromeWhat - no switch or case statement?Sharing pictures of WiltshireA reminder that the customer is KingUsing a Python dictionary as a holder of object attributesPricing strategy - simple and fairPython generator functions, lambdas, and iteratorsCourse follow-upsElegant languages - Perl, PHP, PythonWhy are we no. 404
|
2259 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|