regexp会自动在函数输入上运行吗?

Kre*_*reg 1 python regex function

所以,我已经搜索了一段时间,但找不到任何东西,所以我决定求助于SO的专家,以帮助我澄清正在发生的事情.

我正在学习Python,在学习正则表达式时,我遇到了一些我无法弄清楚的有趣语法.在此示例中,定义了一个函数,该函数在输入参数上运行正则表达式,将整数的匹配作为float返回,或者如果输入与看起来像数字的东西不匹配则抛出异常:

import re
def getNumber(token):
  r'-?[1-9][0-9]*.?[0-9]*'
  return float(token)
Run Code Online (Sandbox Code Playgroud)

这个函数可以这样调用:

print getNumber('123.123')
print getNumber('123.123')+40
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

123.123
163.123
Run Code Online (Sandbox Code Playgroud)

我试图了解这是如何发生的机制.我知道我们正在通过调用r'STRING来声明一个正则表达式对象,但不知何故只是声明正则表达式导致令牌参数也被传递到表达式中.这是一个具有显式包含名为"token"的参数的函数的特征吗?是否有与多个参数相关的行为?这似乎已经完成了一些工作来提供pythonic语法,我想知道它的工作原理以及将来如何使用它的细节.指向我的文档会很棒,因为我找不到任何关于这个主题的内容.

mgi*_*son 5

此函数未在输入上运行正则表达式...它正在调用float将输入转换为浮点数的输入."正则表达式"只不过是函数的文档字符串.

请注意,r"this is a string"只是创建一个"原始字符串",它与正则表达式无关("\t"是制表符,r"\t"而是文字字符'\''t').