python - 在函数中用作丢弃语句的原始正则表达式字符串,其值被丢弃

标签 python

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

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

r'\s+' 是如何工作的?没有函数调用(例如re.match)或任何包装或使用它的东西。我对 python 的经验很少(主要是 javascript),但这不会被忽略吗?

最佳答案

答案分为两部分:

  1. 通常在 Python 中,您是对的:未分配给变量或传递给产生某种副作用的函数或方法的字符串不会产生任何总体效果。但是,如果 Python 函数中的第一个语句是字符串文字,则该字符串将成为该函数的文档字符串 a special property that Python functions can possess .

  2. PycParser 库中提供的代码不是纯 Python,而是使用 PLY 库,该库使用 Python 文档字符串来定义功能 2 .

因此,提供的代码为函数的文档字符串分配一个值,然后 PLY 库使用该文档字符串。

关于python - 在函数中用作丢弃语句的原始正则表达式字符串,其值被丢弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75700168/

相关文章:

python - 使用Flask和Flask-WTF中的路径和可选参数重定向到新页面不起作用

Python 请求组合 .pem 文件的 SSL 错误

python - pip 未安装 Scrapy 命令行工具

python - 两个元组的最大值

python - reshape 两个字符串列以在 Pandas 之间进行计数

python - 在经过一定数量的 epoch 之后,GAN 中的假图像创建变得最糟糕

python - 当我尝试将 scikit-learn 模型与 1 个以上的功能相匹配时,出现此错误 "ValueError: Found input variables with inconsistent numbers of samples"

python - 使用 SVM Python 进行图像分类

Python 字典语法,有一个 for 条件

python - 选择特定的 CSV 列(过滤)-Python/pandas