On 2008-03-02 15:06, Preben Randhol wrote: > Hi > > I'm making a kind of ordered dictionary class. It is not exactly a > dictionary, but it uses a list and dictionary to store the data. > > Something like: > > class dbase(list): > '''Database class keeping track of the order and data''' > > def __init__(self): > self.__data = {} > self.__order = [] > self.__uniq_id = 0 > > I'm just wondering if it is possible to get my class to work so that if > one do: > > > d=dbase() > d.append("Data") > d.append([1,2]) > > one can do like this to iterate over the data. > > for x in d: > ... > > I'm looking at the list class but I don't quite understand from pydoc > which __ __ methods I have to implement to get the above to work.
The easiest is to implement an iterator which then get's returned by the .__iter__() method. http://www.python.org/doc/lib/typeiter.html It's also possible to implement .__getitem__() and .__len__() methods and have Python create an iterator on-the-fly. That's how Python used to work before iterators were added to the language. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Mar 03 2008) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 -- http://mail.python.org/mailman/listinfo/python-list