\r\n 什么的最讨厌了……平常用字符串的时候还不觉得,只是用别人的软件碰到没考虑这个问题的 bug 过……正则表达式里的点能匹配 \r 不能匹配 \n (加参数连 \n 通吃就起不到限制在行内的作用了),换行之类的就不可以直接做。暂时先用 s = "\n".join(s.splitlines()) 处理一下,写完再替换回去好了……(好龌龊……啊啊啊)
平生第一次在函数里头显式定义函数……值得纪念。囧~以前学 C 时"不许函数嵌套定义"留下的印象太深刻(其实也有方法可以作弊的),以至于很久没用 C 了,之前在别人的 python 代码里见到过几回,自己写的时候也完全没往这个方向动过念头——看来还是用不到的缘故。今天这么写是因为 re.sub 可以传一个函数来进行替换,但是这个函数只许传一个正则表达式匹配结果的 MatchObject 作为参数。我有几个局部变量要在替换处理函数里用。在外头定义的话参数表得长长一串,真正在 re.sub 里调用的时候还要用 lambda ,也太麻烦了。以前曾经因为在函数里修改全局变量忘记声明 global 造成 bug 卡了好几天,痛定思痛把手册里作用域和命名空间的部份认真啃了一遍,还算有点印象,所以觉得嵌套定义的话偷懒直接用上层函数的局部变量大概也许可能有门,一试竟然真的可以,好开心~
这两天常犯的错误是把小扩号写成中扩号,还常常是发生在一坨 lambda 里头。起码七八次了。能改掉的是缺点,改不掉的是弱点——粗心和没记性就是我一大堆的弱点中两个大号的。
没有评论:
发表评论