我正在观看关于Udacity的CS262的视频,我对这种程序定义感到困惑:
def t_WORD(token):
r'[^ <>]+' # any reg. exp. ruleset is placed here
# ... more processing
# ... more processing
return token
此代码使用库层(.lex)
我有一些Python的经验和知识,但我对此过程定义行之后的第一行非常困惑。
Python解释器如何使用,解释或访问该字符串(reg.exp.string)?它只是一个未指定变量的字符串。
我已经完成了通常的Google和SO搜索,但无法找到它实际上是什么。
提前感谢您的所有答案和解释。
答案 0 :(得分:5)
该字符串是文档字符串,可以t_WORD.__doc__
访问。 PLY库使用它为函数分配规则。
在这种情况下,PLY正在使用docstrings来达到自己的目的。该字符串被分配给__doc__
属性,任何人都可以读取该字符串。在这种情况下,PLY使用它来构造解析器。