Python含format()点链式调用的代码如何符合PEP8编码规范
PEP8格式化规范解答
1. 行尾加.的写法合规性
你当前的写法完全符合PEP8标准,属于合法的长行折行方案。PEP8后续更新的版本更推荐将链式调用的.放在新行的开头,更符合阅读直觉:无需回溯上一行末尾即可判断当前行的操作类型。
2. 推荐的PEP8格式化写法
同时修正了原代码中比较运算符两侧无空格的不符合规范问题,优化后代码如下:
hist_df = spark.read.format("delta").table("{table}".format(table=selected_table)) hist_query = ( hist_df .where(col("status") == "{sel_status}".format(sel_status=selected_status)) .where(col("cret_dt") < "{last_date}".format(last_date=selected_last_date)) .drop("cret_ts", "cret_dt") ) file_path = ( "abfss://{cont}@{acct}.dfs.core.windows.net/{folder}/" .format( cont=storage_container, acct=storage_account, folder=selected_folder ) )
3. 写法说明
- 用括号包裹整个长表达式,不需要加反斜杠续行,是PEP8优先推荐的长行折行方案
- 链式调用的
.统一放在新行行首,调用逻辑一目了然 .format()的参数列表每个参数单独占一行,缩进和左括号对齐,符合PEP8参数换行规范- 比较运算符(
==、<等)两侧统一加空格,符合PEP8空格规范
内容的提问来源于stack exchange,提问作者ericOnline
相关产品推荐
相关产品推荐

