2015-11-05 22 views
5

Gibt es in Python eine akzeptierte Namenskonvention für reguläre Ausdrücke? Oder wenn nicht, was sind Vorschläge, wie man sie benennen kann? Normalerweise nenne ich sie so etwas wie look_for_date oder address_re, aber ich habe mehrere Orte gelesen, dass die Verwendung eines Suffix wie '_re' in einem Variablennamen nicht gut ist. Mir scheint es, wie die Regex etwas, es ist ein regulärer Ausdruck, um anzuzeigen, muss, da, wenn Sie es nur date oder address genannt, würden Sie nicht in der Lage sein, Sachen wie diese zu tun, das scheint intuitiv:Namenskonvention für reguläre Python-Ausdrücke?

date = date_re.match(text)

Antwort

5

Kompilierte reguläre Ausdrücke sind Konstanten, sollte also einen UPPERCASE_WITH_UNDESCORES Namen haben. Ich neige dazu, sie für das zu nennen, was sie zusammenbringen würden; ein Beispiel von einigen Code zu geben schrieb ich vor kurzem:

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)) 
     ... 

... 

ich denke, das macht es ziemlich klar, was los ist, VALID_CLOSURE_PATTERN kommuniziert „das beschreibt, was wir ein gültiges Verschlussmuster wäre betrachten“ und eine Linie wie:

if not VALID_CLOSURE_PATTERN.match(closure_pattern): 

beschreibt, was es eigentlich in der Nähe von Plain Englisch tut. Also könnten Sie in Ihrem Fall schreiben:

date = VALID_DATE.match(text) 
+1

Cool, ich wollte auch nach der Großschreibung fragen. Danke für die Antwort. Das sind also Richtlinien und nicht von den PEP-Göttern in Stein gehauen? – nonex