2

djangobook のこの django コードを見ると、次のようになります。

from django.http import Http404, HttpResponse
import datetime

def hours_ahead(request, offset):
    try:
        offset = int(offset)
    except ValueError:
        raise Http404()
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
    html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
    return HttpResponse(html)

試した後、オフセットを整数に変換しますよね?また、「datetime.timedelta(hours=offset)」の行ではオフセットが整数として使用されていますが、「html = "In %s hour(s), it will be %s."」の行ではオフセットが使用されています。% (オフセット、dt)'

オフセットは文字列である %s ですよね? それとも理解不足ですか?%s は整数ではなく文字列にしかできないと思いましたか?

4

3 に答える 3

1

offset整数の場合(この特定のケースでは、どのオブジェクト タイプにも当てはまりません)、 、 のいずれかを使用でき%s%d同じ%r結果が得られます。

%d表示用に整数をフォーマットし、引数で%s呼び出し、次を呼び出します:str()%rrepr()

>>> n = 5
>>> str(n)
'5'
>>> repr(n)
'5'

ドキュメントも参照してください。

于 2013-07-21T19:02:51.443 に答える