Chr*_*ett 0 ruby python django ruby-on-rails
我的Rails应用程序中有一个小内容,它返回一系列带有可选参数的版权日期,例如:
def copyright_dates(start_year = Date.today().year)
[start_year, Date.today().year].sort.uniq.join(" - ")
end
Run Code Online (Sandbox Code Playgroud)
我正在将应用程序移到Django上,虽然我喜欢它,但我还是有点简洁.Python中的相同方法如下:
def copyright_dates(start_year = datetime.datetime.today().year):
years = list(set([start_year, datetime.datetime.today().year]))
years.sort()
return " - ".join(map(str, years))
Run Code Online (Sandbox Code Playgroud)
自从我接触Python以来已经有好几年了,所以我认为有一种更简单的方法.有任何想法吗?
编辑:我知道列表和集合有点矫枉过正,但我希望以下输出假设代码在2009年运行:
copyright_dates() # '2009'
copyright_dates(2007) # '2007 - 2009'
copyright_dates(2012) # '2009 - 2012'
Run Code Online (Sandbox Code Playgroud)
from datetime import datetime
def copyright_dates(start_year = datetime.now().year):
return " - ".join(str(y) for y in sorted(set([start_year, datetime.now().year])))
Run Code Online (Sandbox Code Playgroud)
注意一次评估的默认参数.因此,如果您的Web应用程序在没有重新启动的情况下运行超过12/31/09,您将无法获得预期的输出.
尝试:
def copy(start=None):
start, curr = start if start else datetime.today().year, datetime.today().year
return str(start) if start == curr else '%d - %d' % tuple(sorted([start, curr]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |