2015-11-05 2 views
5

Есть ли принятое соглашение об именах для регулярных выражений в Python? Или, если нет, какие предложения о том, как их назвать? Обычно я называю их чем-то вроде look_for_date или address_re, но я прочитал несколько мест, где использование суффикса типа _re в имени переменной не очень хорошо. Мне кажется, что регулярное выражение нужно что-то, чтобы указать, что это регулярное выражение, так как если вы назвали его просто date или address, вы бы не быть в состоянии делать такие вещи, как это, что кажется интуитивно:Соглашение об именах для регулярных выражений Python?

date = date_re.match(text)

ответ

5

Скомпилированные регулярные выражения: константы, поэтому должно быть имя UPPERCASE_WITH_UNDESCORES. Я склонен назвать их для того, что они будут соответствовать; чтобы дать пример из некоторого кода, который я недавно написал:

import re 

VALID_CLOSURE_PATTERN = re.compile(r''' 
    ^\d{2} # starts with two digits 0-9 
    [NY]{4}$ # followed by four Y/N characters 
''', re.IGNORECASE + re.VERBOSE) 


class RoadClosure(object): 

    def __init__(self, ..., closure_pattern): 
     """Initialise the new instance.""" 
     if not VALID_CLOSURE_PATTERN.match(closure_pattern): 
      raise ValueError('invalid closure pattern: {!r}'.format(closure_pattern)) 
     ... 

... 

Я думаю, что это делает его очень ясно, что происходит, VALID_CLOSURE_PATTERN общается «это описывает то, что мы считаем правильный образец закрытия» и линия например:

if not VALID_CLOSURE_PATTERN.match(closure_pattern): 

описывает, что он на самом деле делает в простом английском. Так что в вашем случае вы можете написать:

date = VALID_DATE.match(text) 
+1

Прохладный, я хотел спросить и о верхнем случае. Спасибо за ответ. Итак, это рекомендации и не вырезаны из камня богами PEP? – nonex

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