3

私は次のコードを持っていますが、の繰り返しのために臭いと思います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'])),
    ]
4

3 に答える 3

7

Python 2.6+ を使用している場合は、次を使用できますstr.format

r'/archives/{0}/{0}/{0}/{0}'.format(vi)
于 2012-10-15T09:14:55.740 に答える
6

簡単です。変数に名前を付けてみてください。指定した名前の変数に何度でもアクセスできます。次に例を示します。

"%(vi)s is %(vi)s" % {'vi':vi}

基本的に、置き換えには dict を使用します。%<options><variabletype>次に、フォーマット設定を(eg %2s)から%(<dictKey><options><variabletype>)( eg %(vi)2s)に変更します。

于 2012-10-15T09:12:35.303 に答える
2

nyouの繰り返しでタプルを書く代わりに、 と書くviことができます(vi,)*n

于 2012-10-15T09:11:57.667 に答える