My own list object

MDK mdk at mdk.com
Tue Feb 5 19:46:58 CET 2002


"Martin Franklin" <martin.franklin at westgeo.com> wrote in message
news:a3p2fg$49g$1 at mail1.wg.waii.com...
> MDK wrote:
>
> >
> > "Emile van Sebille" <emile at fenx.com> wrote in message
> > news:a3p0ss$19ob7s$1 at ID-11957.news.dfncis.de...
> >>
> >> "MDK" <mdk at mdk.com> wrote in message
> >> news:a3p01b$186eq8$1 at ID-98166.news.dfncis.de...
> >> > Hello,
> >> >
> >> > I am trying to create my own special type of list object.
> >> >
> >> > However, when I do x.append('yo') it uses Python's append instead of
> >> the one
> >> > from my class.
> >> >
> >> > How can I get it to use my append method?  I have tried def
__append__
> >> and
> >> > then called my own class' function but that did not work.  I've
played
> >> with
> >> > __getattr__ but that did not help.
> >> >
> >>
> >> Call the method append and not __append__?
> >>
> >>
> >> --
> >>
> >> Emile van Sebille
> >> emile at fenx.com
> >
> > Yes, I figured that to be the case because it should be transparant to
the
> > caller.  However, that is not the solution.
> >
> > Thanks though.
> >
> >
> >
>
> Post some code.  perhaps the answer is obvious...
>
>
> for example
>
>
> >>> class MyList:
> ...     def __init__(self):
> ...             self.list=[]
> ...     def append(self, item):
> ...             self.list.append(item)
> ...
> >>> ml=MyList()
> >>> ml.append(1)
> >>> ml.list
> [1]
> >>>
>
> would apear to work?

I made a file mylist.py

# mylist.py
class MyList:
    def __init__(self):
        self.list=[]
    def append(self, item):
        self.list.append(item)

>>> import mylist
>>> x = mylist()
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
TypeError: object of type 'module' is not call

Why is this happening?  My list object must be a class in its own,
importable file.





More information about the Python-list mailing list