即便是python资深用户也经常会错写datetime.strptime(string, format)
,颠倒两个参数的顺序而写成了datetime.strptime(format, string)
,与re.find(pattern, string)
相混淆。
分析问题
1、datetime.strptime()
首先strptime的函数命名不太好, 词义模糊, 不如直接叫str2time。string是source,time是result。
strptime(string, format) method of builtins.type instance
string, format -> new datetime parsed from a string (like time.strptime())
#Case
In [6]: datetime.strptime("8 May, 2019", "%d %B, %Y")
Out[6]: datetime.datetime(2019, 5, 8, 0, 0)
本函数的工作是parse a string to produce a time object。strptime 的字面含义读起来却像是毫无意义的string to parse time或者是读成相反的含义parse time to produce a string。妥协的处理方法理解为‘string parsed’ to time。将strp当做一个组合名词即strp2time。
官方的 strptime 命名比较 str2time 的优点是存在动词 parse, 点出函数的内部逻辑需要做的核心工作是解析。将普通的字符串解析成为有实际价值和意