Python中.start()方法的通用作用及指定脚本中的功能咨询
嘿,我来帮你把这两个问题讲明白~
1. Python中
.start()方法的作用 首先得说清楚:.start()不是Python的全局函数,而是某些类的实例方法,不同场景下作用完全不一样:
- 如果是
threading.Thread类的实例调用.start():这是用来启动新线程的方法。调用它之后,系统会创建一个独立的线程,去执行该线程对象run()方法里的代码——注意哦,直接调用run()只是普通函数执行,不会开新线程,只有.start()才会真正启动并发线程。 - 如果是正则匹配得到的
re.Match对象调用.start():它会返回匹配到的子串在原字符串中的起始索引位置。要是正则里有分组,还可以给.start()传分组编号,获取对应分组匹配内容的起始索引。
2. 给定脚本中
.start()方法的作用 先把你给出的代码再贴一遍方便理解:
import re str2 = re.search("\((\w+)\)", str1) return str1[:str2.start()].strip()
这里的.start()是re.Match对象的方法,具体作用拆解如下:
- 首先
re.search("\((\w+)\)", str1)会在str1里找第一个符合(字母/数字/下划线组成的串)格式的内容,比如"(test)"这种,找到后返回一个re.Match对象给str2。 str2.start()会返回整个匹配子串的起始索引——也就是那个左括号(在原字符串str1中的位置(索引从0开始算)。- 接着
str1[:str2.start()]会截取str1从开头到这个起始索引之前的部分,再用.strip()去掉首尾的空白字符,最后返回处理后的结果。
举个实际例子:如果str1是"今天天气 (晴) 适合出门",那re.search匹配到的是"(晴)",str2.start()返回的是5(索引0开始,“今”0,“天”1,“天”2,“气”3,空格4,“(”就是5)。str1[:5]是"今天天气 ",.strip()后就变成"今天天气",这就是最终返回的内容。
内容的提问来源于stack exchange,提问作者Non Volatile Engineer
相关产品推荐
相关产品推荐

