python class 内的 next(),last(),set() 写法

卡了一段时间不太知道怎么写,求大神解救我有一个class里面需要有next,last,与set()答案要这样:我搞不定-->d=MyDate(22,10,2012)>s=... 卡了一段时间不太知道怎么写,求大神解救
我有一个class 里面需要有next,last,与set()
答案要这样:我搞不定- -

>d= MyDate(22,10, 2012)
>s= Schedule(d, usage = "School", owner = "CaCaEgg") # d will set as current
>d1= MyDate(29,11, 2012)
>d2= MyDate(16,9, 2012)
>d3= MyDate(25,9, 2012)
>s.add(d1)
>s.add(d2)
>s.add(d3)
>prints.next()
29/11/2012
>prints.last()
25/9/2012
>d= MyDate(20,9, 2012)
>s.set(d)
>prints.next()
25/9/2012
>prints.last()
16/9/2012

我的程式码:class Schedule(calender):
def __init__(self,ddate,usage,owner):
self.usage = usage
self.owner = owner
self.current = []
self.current.append(str(ddate))
def __str__(self):
return str(self.current)
def add(self, x):
self.current.append(str(x))
def daylist(self):
return self.current
题目是这样:
请利用继承calender 来解决,请撰写一个Schedule的CLASS,拥有以下members method

members:
current, a MyDateclass

functions:
set(MyDate):set MyDateobject to self.current
next(): return the first MyDateobject in daylistafter self.current
last(): return the last MyDateobject in daylistbefore self.current
展开
 我来答
daweileo
2013-09-20 · TA获得超过275个赞
知道小有建树答主
回答量:121
采纳率:100%
帮助的人:159万
展开全部
class Schedule(calender):
    def __init__(self, date, usage, owner):
        self.usage = usage
        self.owner = owner
        # 保存所有的日期
        self._list = [date, ]
        self.current = date
    def add(self, date):
        self._list.append(date)
        # 假定date对象是支持比较的
        self._list.sort()
    def set(self, date):
        if date not in self._list:
            self.add(date)
        self.current = date
    def next(self):
        index = self._list.index(self.current) + 1
        if index >= len(self._list):
            print "no next"
        else:
            return self._list[index]

last类似,略

213456俺说的
2013-09-22 · 贡献了超过112个回答
知道答主
回答量:112
采纳率:0%
帮助的人:26.7万
展开全部
class A:
def next:
def last:
def set:
。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-20
展开全部
__iter__ 实现他就有了next
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aa1ss2_2
2013-09-19 · TA获得超过397个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:195万
展开全部
不明白你要问什么,首先你要说明接口的语义,如果是日期比较的话,last是集合内最后一个日期??
我看输出的结果也不是,你写的代码仅仅记录str,这有什么意义,没看出来.....
追问
你好,题目有补充了
代码目前卡住next,last,set 不知道怎么写,所以只有一半
追答
不知道那个calender是什么来的,不过比较日期这个很简单

import datetime

class MyDate( datetime.datetime ):
pass

class Schedule( object ):
current = [ ]
def __init__( self ):
self.current = [ ]

def set( self ,date ):
self.current.append( date )
self.current.sort( )

def next( self ):
return self.current[ 0 ] if self.current else None

def last( self ):
return self.current[ -1 ] if self.current else None

d = MyDate( 2012 ,10 ,12 )
s= Schedule( )
d1= MyDate( 2012 ,11 ,29 )
d2= MyDate( 2012 ,9 ,16 )
d3= MyDate( 2012 ,9 ,25 )
s.set( d1 )
s.set( d2 )
s.set( d3 )
print( s.next( ) )

d = MyDate( 2012 ,9 ,20 )
s.set( d )
print( s.next( ) )
print( s.last( ) )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9ee38fb7
2013-09-20 · 贡献了超过127个回答
知道答主
回答量:127
采纳率:0%
帮助的人:37.2万
展开全部
把参数协商就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式