Я не уверен, что заголовок вопроса интуитивно понятен, но позвольте мне объяснить его здесь подробно.
Я хотел бы использовать exec
с циклом for
для эффективной записи кода с повторяющимися шаблонами. Для иллюстрации приведу очень простой пример
channels = {'q_qp': 0, 'q_qbp': 1, 'q_q': 2, 'q_qb': 3, 'q_g': 4, 'g_g': 5}
for channel in channels:
string = """\
print '%s'
""" % channel
exec string
Это работает отлично, но сложная часть приходит, когда я пытался добавить форматированную печать в переменную string
, вот она
import time
channels = {'q_qp': 0, 'q_qbp': 1, 'q_q': 2, 'q_qb': 3, 'q_g': 4, 'g_g': 5}
for channel in channels:
string = """\
print '%s'
nt = time.time()
print 'now the cpu time is %f' % nt
""" % channel
exec string
Очевидно, что %
во втором операторе print
вызывает путаницу в компиляторе. Я попытался использовать %%
вместо string
, чтобы интерпретировать его буквально как знак процента, но он не выбрал бы это.
Мне интересно, как эта вложенная форматированная печать могла быть реализована в Python, может кто-нибудь помочь мне?
Заранее спасибо!