在Python中将长方法链分成多行

时间:2018-01-30 18:26:11

标签: python python-3.x

我正在学习Python和pandas,而且我经常会遇到很长的方法调用链。我知道如何以编译的方式打破运算符的列表和链,但是我找不到一种方法来打破方法链,而这种方式并不像作弊那样。

在谷歌中有很多打破运营商链和列表的例子,但我找不到方法链的任何东西。

Python 3中将多条方法调用链分成多行的最佳方法是什么?

说出像这样的一行:

t_values = df_grouped_by_day.sort_values('day_of_week').groupby(['day_of_week', 'day_of_week_name'])['Show_up'].apply(lambda sample: ttest_ind(population, sample)).reset_index()

3 个答案:

答案 0 :(得分:4)

到目前为止,我提出的最佳方法是:

t_values = (df_grouped_by_day
           .sort_values('day_of_week')
           .groupby(['day_of_week', 'day_of_week_name'])['Show_up']
           .apply(lambda sample: ttest_ind(population, sample))
           .reset_index())

答案 1 :(得分:3)

或者,反斜杠\可以放在最后一行的末尾。

t_values = df_grouped_by_day \
           .sort_values('day_of_week') \
           .groupby(['day_of_week', 'day_of_week_name'])['Show_up'] \
           .apply(lambda sample: ttest_ind(population, sample)) \
           .reset_index()

答案 2 :(得分:1)

为了完整性,还有一种方法是仅在已存在的括号或括号对中断行。它避免了括号包装和换行符转换,但我觉得很多不太可读:

t_values = df_grouped_by_day.sort_values('day_of_week'
       ).groupby(['day_of_week', 'day_of_week_name']
       )['Show_up'
       ].apply(lambda sample: ttest_ind(population, sample)
       ).reset_index())