2013-05-11 6 views
2

Что было бы самым элегантным способом в Python, чтобы подменить поиск регулярных выражений с помощью uuid?Элегантный способ повторного ввода uuid1()?

re.sub(r'guid="([0-9a-f-]{36})"', uuid1(), contents) 

Приведенное выше утверждение не удается из-за этой ошибки:

TypeError: object of type 'UUID' has no len() 

Будет ли это подходящий сценарий, чтобы исследовать использование лямбда?

ответ

5

uuid.uuid1() возвращает uuid.UUID объект. Второй аргумент re.sub ожидает вызывать или строку. В этом случае преобразование uuid1() в строку: str(uuid1()):

re.sub(r'guid="([0-9a-f-]{36})"', str(uuid1()), contents) 
+0

класс GUIDGenerator: Защиту __call __ (я, s): возвращение ул (uuid1()) – indi

+0

Добавление вызываемую метода в новый класс возвращает новый uuid для каждого матча. – indi

Смежные вопросы