Как мне получить необработанное представление строки в Python?
Я делаю класс, который сильно зависит от регулярных выражений.
Позволять'скажем, мой класс выглядит так:
class Example:
def __init__(self, regex):
self.regex = regex
def __repr__(self):
return 'Example({})'.format(repr(self.regex.pattern))
И разреши'скажем, я использую это так:
import re
example = Example(re.compile(r'\d+'))
Если я сделаюrepr(example)
, Я получил'Example('\\\\d+')'
, но я хочу'Example(r'\\d+')'
, Примите во внимание дополнительную обратную косую черту, где это после печати, это появляется правильно. Я полагаю, я мог бы реализовать это, чтобы вернуться"r'{}'".format(regex.pattern)
но это нене сиди со мной хорошо В маловероятном случае, когда Python Software Foundation когда-нибудь изменит способ указания необработанных строковых литералов, мой код победит »это не отражает. Тот'гипотетически, хотя. Моя главная проблема заключается в том, всегда ли это работает. Я могу'Хотя я не думаю о крайнем случае с макушки головы. Есть ли более формальный способ сделать это?
РЕДАКТИРОВАТЬ: кажется, ничего не появляется вСпецификация формата Mini-Language,printf
руководство по форматированию строк, илиstring
модуль.