3

我正在 Udacity 上观看 CS262 的视频,我对这种程序定义感到困惑:

def t_WORD(token):
    r'[^ <>]+' # any reg. exp. ruleset is placed here
    # ... more processing
    # ... more processing
    return token

此代码使用库 ply (.lex)

我有一些 Python 经验和知识,但是我对过程定义行之后的第一行感到很困惑。

Python 解释器如何使用、解释或访问该字符串(reg. exp. string)?它只是一个未分配的字符串,没有指向它的变量。

我已经完成了通常的 Google 和 SO 搜索,但找不到它实际上是什么。

预先感谢您的所有答案和解释。

4

1 回答 1

5

该字符串是文档字符串,可作为t_WORD.__doc__. PLY 库使用它来为函数分配规则。

在这种情况下,PLY 将文档字符串用于自己的目的。字符串被分配给__doc__属性,任何人都可以读取该字符串。在这种情况下,PLY 使用它来构造解析器。

于 2012-12-11T15:41:38.517 回答