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インタープリターによってどのように使用、解釈、またはアクセスされますか?それは、それを指す変数なしで割り当てられていない単なる文字列です。

私は通常のグーグルとSO検索をしましたが、それが実際に何であるかを見つけることができませんでした。

事前にすべての回答と説明をありがとうございました。

4

1 に答える 1

5

その文字列はdocstringであり、としてアクセスできますt_WORD.__doc__。PLYライブラリはこれを使用して、関数にルールを割り当てます。

この場合、PLYは独自の目的でdocstringを使用しています。文字列は属性に割り当てられ__doc__、誰でも文字列を読み取ることができます。この場合、PLYはそれを使用してパーサーを構築します。

于 2012-12-11T15:41:38.517 に答える