【发布时间】:2017-01-16 14:47:53
【问题描述】:
class Runner:
"""
information of registered runners
Attributes:
@type email: str
email of the registered runner
@type category: str
the speed they estimate that they can finish the race
@type list: clist
the list of runners in the same category
"""
under_twenty_min = []
under_thirty_min = []
under_forty_min = []
forty_and_above = []
def __init__(self, email, category):
"""Register the email and the speed estimation of runners
@type self: Runner
@type email: str
@type speed: int
@type category:str
@type clist: list
@rtype: list
>>>runner1=Runner('gerhard@mail.utoronto.ca','under 40 min')
>>>runner1.email
'gerhard@gmail.utoronto.ca'
>>>runner1.category
'under 40 min'
"""
self.email = email
self.category = category
if category=='under 20 min':
self.clist=under_twenty_min
elif category=='under 30 min':
self.clist = under_twenty_min
elif category=='under 40 min':
self.clist = under_forty_min
elif category=='40 min and over':
self.clist = forty_and_over
renew(self,clist)
return clist
基本上我在初始化跑步者时必须返回一个具有相同速度类别的跑步者列表,但是我无法将上面定义的列表分配给类属性,有没有办法修复它?
【问题讨论】:
-
访问类命名空间属性使用这个符号
self.clist=Runner.under_twenty_min -
return clist-->return self.clist和renew(self,clist)-->renew(self,self.clist)。您可能应该向我们展示renew- 它是类的方法还是独立函数? -
奇怪的是 ```__init__`` 需要返回一个列表 - stackoverflow.com/a/2491831/2823755