首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写这段代码的更好的方式?

写这段代码的更好的方式?
EN

Stack Overflow用户
提问于 2012-10-15 17:09:32
回答 3查看 131关注 0票数 3

我有以下代码,我认为它很糟糕,因为重复了vi。我怎样才能写得更好?

代码语言:javascript
复制
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'])),
    ]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-15 17:14:56

如果您使用的是Python 2.6+,则可以使用str.format

代码语言:javascript
复制
r'/archives/{0}/{0}/{0}/{0}'.format(vi)
票数 7
EN

Stack Overflow用户

发布于 2012-10-15 17:12:35

这很简单,试着给你的变量命名,然后你可以用给定的名称访问变量,任意次数。下面是一个示例:

代码语言:javascript
复制
"%(vi)s is %(vi)s" % {'vi':vi}

基本上,你使用一个字典来替换。然后将格式从%<options><variabletype> (例如%2s)更改为%(<dictKey><options><variabletype>) (例如%(vi)2s)

票数 6
EN

Stack Overflow用户

发布于 2012-10-15 17:11:58

您可以编写(vi,)*n,而不是使用重复的n vi来编写元组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12892440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档