python re模块compile_python - 关于re模块源代码

问 题

1.最近需要查看一下re模块的实现代码(不知道是不是python实现的,但是发现lib下面有一个re.py),

发现一个比较奇怪的问题,例如search功能:

def search(pattern, string, flags=0):

"""Scan through string looking for a match to the pattern, returning

a match object, or None if no match was found."""

return _compile(pattern, flags).search(string)

注意到search其实return了一个_compile(pattern, flags).search(string),就比较迷糊了:

a)这种形式算不算递归?但是search代码里面什么都没有写,怎么递归?

b)发现_compile(pattern, flags)其实是一个函数:

def _compile(pattern, flags):

后面省略

函数还能这样写function.function?之前只见过class.function用法,从没有见过一个函数使用“.”的方法?

不知道是我理解有误还是什么其他原因,烦请大神指导?

谢谢了!

解决方案

你仔细看_compile方法的实现

p = sre_compile.compile(pattern, flags)

你说的.serarh其实是sre_compile.compile(pattern, flags)下面的方法

wx.jpg

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值