本身不是一个编程问题,但重要的是在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
答案 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]