在python中格式化语句的最佳实践

时间:2015-09-06 14:40:47

标签: python

本身不是一个编程问题,但重要的是在python中编写干净的程序:

是否有任何在函数参数之间留空的最佳实践?例如,哪个更好:

1

idf['datetime'] = pandas.to_datetime(idf['Year'].astype(str) + ' ' + idf['JD'].astype(str), format = '%Y %j')


2.

idf['datetime'] = pandas.to_datetime(idf['Year'].astype(str)+' '+idf['JD'].astype(str),format='%Y %j')

此外,还有什么更好的;

1

idf['MONTH'] = idf['datetime'].apply(lambda x: x.month)
idf['DAY']   = idf['datetime'].apply(lambda x: x.day)
idf['unq']   = idf.groupby('Ob').cumcount() + 1 

或2.

idf['MONTH'] = idf['datetime'].apply(lambda x: x.month)
idf['DAY'] = idf['datetime'].apply(lambda x: x.day)
idf['unq'] = idf.groupby('Ob').cumcount() + 1 

2 个答案:

答案 0 :(得分:7)

在Python中,您已经定义得很好,或者或多或少是标准建立的格式规则。请看PEP8。有一些工具可以检查最常见的编辑器的规则和集成。

答案 1 :(得分:3)

正如@Achim指出的那样,PEP8是事实上的指南,因此将其应用于您的代码:
你的第一个例子,选项1,但线条太长了 第二个例子,第二个选项是首选

要符合PEP8线路长度,您可以将第一个代码更改为:

idf['datetime'] = pandas.to_datetime(idf['Year'].astype(str)
idf['datetime'] += ' ' + idf['JD'].astype(str), format = '%Y %j')

但是,我更愿意:

idf['datetime'] = " ".join([pandas.to_datetime(idf['Year'].astype(str),
                            idf['JD'].astype(str), format = '%Y %j')])

[注意:我遵循PEP8,但有一个例外:我个人认为80线路长度太短,经常将支票更改为120]