Saya harus mengambil string yang berisi placeholder untuk substitusi nanti, seperti:
"A %s B %s"
Dan mengubahnya menjadi:
"A {0} B {1}"
Saya datang dengan:
def _fix_substitution_parms(raw_message):
rv = raw_message
counter = 0
while '%s' in rv:
rv = rv.replace('%s', '{' + str(counter) + '}', 1)
counter = counter + 1
return rv
Itu bekerja, tetapi rasanya super kikuk, dan sama sekali tidak python "idiomatik".
Bagaimana solusi python idiomatik yang baik?
Pembaruan untuk klarifikasi:
- string yang dihasilkan tidak digunakan dalam python. Saya lakukan perlu nomor meja di sana! (jadi
{}tidak cukup baik)! - Saya hanya perlu peduli dengan
%sstring, karena pesan dijamin hanya akan digunakan%s(tidak%i %fapa pun)