在Python中,通常认为具有主要影响现有对象而不返回自身的函数是一种好习惯。例如,
sorted(yourlist)返回排序后的列表,但
yourlist.sort()对列表进行原位排序,不返回任何内容。
在一行上执行具有副作用(而不是侧重于返回值的无副作用功能)的多个操作并不是一个好习惯。该代码在行数方面将更加紧凑,但是由于重要的副作用可能埋在链的中间,因此将很难阅读。如果要使用方法链接,请在链的开头使用没有副作用的函数,然后再有一个具有副作用的函数(如.save()结尾)。
换句话说,在方法链中,链的开始是输入,链的中间转换了输入(在树上导航,对输入进行排序,更改字符串的大小写等),并在输入的末尾进行了转换。链是起到副作用作用的功能部分。如果您将带有副作用的方法埋在链的中间,那么将不清楚您的方法链实际上在做什么。



