不使用函数调用的Python原始字符串正则表达式匹配

ego6inou  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(155)

我最近浏览了pycparser的代码,看到了一些类似这样的函数:

def t_CPP_WS(t):
    r'\s+'
    t.lexer.lineno += t.value.count("\n")
    return t

r'\s+'是如何工作的?没有函数调用(例如re.match)或者任何围绕它的东西。我对python(主要是javascript)没有什么经验,但是这难道不会被忽略吗?

jk9hmnmh

jk9hmnmh1#

答案分为两部分:
1.通常在Python中,你是对的:一个字符串如果没有赋值给变量,或者没有传递给会产生某种副作用的函数或方法,就不会产生任何整体效果,但是,如果Python函数中的第一条语句是字符串文字,那么这个字符串就会成为该函数的docstring,a special property that Python functions can possess

  1. PycParser库中提供的代码不是纯Python,而是使用库PLY,它使用Python文档字符串来定义功能2
    因此,提供的代码为函数的文档字符串赋值,然后PLY库使用该文档字符串。

相关问题