Как мне получить необработанное представление строки в 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 модуль.

Ответы на вопрос(1)

Ваш ответ на вопрос