None returned?

Kelvie Wong kelvie at ieee.org
Thu Jul 5 20:20:17 EDT 2007


On 7/5/07, robinsiebler at gmail.com <robinsiebler at gmail.com> wrote:
> I can't figure out -what- is going wrong here.  When the code reaches
> the 'return' line, there is data to be returned, but when it exits out
> to the calling function, 'None' is returned!
>
> import mx.DateTime
>
> def get_weeks(weeks, year, dates, date_list={}):
>     if dates.has_key(year):
>         date_list[year] = dates[year].keys()[-weeks:]
>         if len(dates[year].keys()) >= weeks:
>             return date_list
>         else:
>             weeks = weeks - len(dates[year].keys())

Right here.

>             get_weeks(weeks, str(int(year) -1), dates, date_list)

You have to change that line to:
return get_weeks(weeks, str(int(year) -1), dates, date_list)

Otherwise, if len(dates[year.keys()) < weeks, it doesn't return anything.

>
> def get_report_dates(weeks, dates):
>     today = mx.DateTime.now()
>     this_week = today.iso_week[1]
>     rpt_dates = get_weeks(weeks, str(today.year), dates)
>     print rpt_dates
>
> def main():
>
>     dates = {'2006': {'50': [50, 'This is the 50th week'],
>                             '51': [51, 'This is the 51st week'],
>                             '52': [52, 'This is the 52nd week']},
>                  '2007': {'25': [1, 'This is the 1st week'],
>                             '26': [2, 'This is the 2nd week'],
>                             '27': [3, 'This is the 3rd week'],
>                             '28': [4, 'This is the 4th week'],
>                             '29': [5, 'This is the 5th week']}}
>
>     get_report_dates(6, dates)
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
Kelvie



More information about the Python-list mailing list