Python论坛  - 讨论区

标题:[python-chinese] 请问怎样subclass一个list

2005年07月01日 星期五 12:53

shhgs shhgs.efhilt at gmail.com
Fri Jul 1 12:53:56 HKT 2005

本来一直是用UserList的,Py2.4的manual一再建议subclass
List,所以给个面子,就subclass了一个list。做的时候到也没什么难度。

##---------------------------------------------
class MyList(list) :
    def __init__(self, itsepc) :
        list.__init__(self)
        self.item_specification = itspec
    @property
    def FirstDay(self) :
        self.sort()
        return self[0].date
    ........
##---------------------------------------------

但问题是,经过几次调用,这个llst就失去了其类型信息。当我再cl.FirstDay的时候,它就提示,list object has no
FirstDay attriubte。

请问是不是我subclass的时候漏掉了什么过程?

谢谢!!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年07月01日 星期五 16:22

Qiangning Hong hongqn at gmail.com
Fri Jul 1 16:22:54 HKT 2005

shhgs wrote:
> 本来一直是用UserList的,Py2.4的manual一再建议subclass
> List,所以给个面子,就subclass了一个list。做的时候到也没什么难度。
> 
> ##---------------------------------------------
> class MyList(list) :
>     def __init__(self, itsepc) :
>         list.__init__(self)
>         self.item_specification = itspec
>     @property
>     def FirstDay(self) :
>         self.sort()
>         return self[0].date
>     ........
> ##---------------------------------------------
> 
> 但问题是,经过几次调用,这个llst就失去了其类型信息。当我再cl.FirstDay的时候,它就提示,list object has no
> FirstDay attriubte。

这几次调用是怎么调用的?是不是你中间把cl重新赋值了?

> 
> 请问是不是我subclass的时候漏掉了什么过程?
> 
> 谢谢!!
> 


-- 
Qiangning Hong



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年07月01日 星期五 21:33

shhgs shhgs.efhilt at gmail.com
Fri Jul 1 21:33:03 HKT 2005

我已经解决问题了。原来是要覆写__getslice__方法。其它方法不覆写没关系,但是如果要做[:]操作,一定要覆写这个,否则返回出来的东西,它就认为是一个list了。


On 7/1/05, Qiangning Hong <hongqn at gmail.com> wrote:
> shhgs wrote:
> > 本来一直是用UserList的,Py2.4的manual一再建议subclass
> > List,所以给个面子,就subclass了一个list。做的时候到也没什么难度。
> >
> > ##---------------------------------------------
> > class MyList(list) :
> >     def __init__(self, itsepc) :
> >         list.__init__(self)
> >         self.item_specification = itspec
> >     @property
> >     def FirstDay(self) :
> >         self.sort()
> >         return self[0].date
> >     ........
> > ##---------------------------------------------
> >
> > 但问题是,经过几次调用,这个llst就失去了其类型信息。当我再cl.FirstDay的时候,它就提示,list object has no
> > FirstDay attriubte。
> 
> 这几次调用是怎么调用的?是不是你中间把cl重新赋值了?
> 
> >
> > 请问是不是我subclass的时候漏掉了什么过程?
> >
> > 谢谢!!
> >
> 
> 
> --
> Qiangning Hong
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号