我有以下代码,我认为它很糟糕,因为重复了vi。我怎样才能写得更好?
vi = '([a-zA-Z0-9_\-\.]+)'
handlers = [
(r'/register', RegistrationHandler),
(r'/profiles/%s/%s' % (vi, vi), GetProfiles),
(r'/archives/%s/%s/%s/%s' % (vi, vi, vi, vi), GetArchives),
(r'/publish-profiles', PublishProfiles),
(r'/publish-bundle/%s/%s' % (vi, vi), PublishBundle),
(r'/upload-file/%s/%s/%s' % (vi, vi, vi), UploadFile),
(r"/favicon\.ico", tornado.web.StaticFileHandler, dict(path=settings['static_path'])),
]发布于 2012-10-15 17:14:56
如果您使用的是Python 2.6+,则可以使用str.format
r'/archives/{0}/{0}/{0}/{0}'.format(vi)发布于 2012-10-15 17:12:35
这很简单,试着给你的变量命名,然后你可以用给定的名称访问变量,任意次数。下面是一个示例:
"%(vi)s is %(vi)s" % {'vi':vi}基本上,你使用一个字典来替换。然后将格式从%<options><variabletype> (例如%2s)更改为%(<dictKey><options><variabletype>) (例如%(vi)2s)
发布于 2012-10-15 17:11:58
您可以编写(vi,)*n,而不是使用重复的n vi来编写元组。
https://stackoverflow.com/questions/12892440
复制相似问题