Python 正则表达式的命名约定?
Naming convention for Python regular expressions?
在 Python 中是否有公认的正则表达式命名约定?或者如果没有,关于如何命名它们有什么建议?
通常我将它们命名为 look_for_date
或 address_re
,但我读过几个地方,在变量名中使用像“_re”这样的后缀并不好。在我看来,正则表达式似乎需要一些东西来表明它是一个正则表达式,因为如果你只将它命名为 date
或 address
,你将无法做这样的事情,这看起来很直观:
date = date_re.match(text)
编译的正则表达式通常是 常量,因此每个 PEP 8 应该有一个 UPPER_CASE_WITH_UNDERSCORES
名称。我倾向于根据它们匹配的名称来命名它们;以我最近写的一些代码为例:
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
传达了 "this describes what we would consider to be a valid closure pattern" 和一行:
if not VALID_CLOSURE_PATTERN.match(closure_pattern):
用近乎通俗易懂的英语描述了它的实际作用。所以在你的情况下,你可以写:
date = VALID_DATE.match(text)
在 Python 中是否有公认的正则表达式命名约定?或者如果没有,关于如何命名它们有什么建议?
通常我将它们命名为 look_for_date
或 address_re
,但我读过几个地方,在变量名中使用像“_re”这样的后缀并不好。在我看来,正则表达式似乎需要一些东西来表明它是一个正则表达式,因为如果你只将它命名为 date
或 address
,你将无法做这样的事情,这看起来很直观:
date = date_re.match(text)
编译的正则表达式通常是 常量,因此每个 PEP 8 应该有一个 UPPER_CASE_WITH_UNDERSCORES
名称。我倾向于根据它们匹配的名称来命名它们;以我最近写的一些代码为例:
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
传达了 "this describes what we would consider to be a valid closure pattern" 和一行:
if not VALID_CLOSURE_PATTERN.match(closure_pattern):
用近乎通俗易懂的英语描述了它的实际作用。所以在你的情况下,你可以写:
date = VALID_DATE.match(text)