1

我是 Python 新手,正在寻找如何根据 PEP8 标准格式化以下代码:

  • 使用 Python 3.5 所以fstrings不可用。
  • 有了所有的.format(),很难知道在哪里分割线。

未格式化:

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)

这是我想做的(执行良好):

  • 对我来说,这很好地排列了hist_query过滤器参数
  • 还可以很好地排列file_path format()参数
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=sel_folder
             ))

但是这种格式符合 Python PEP8 标准吗?.在某些行的末尾有悬垂的感觉是违反直觉的。

4

1 回答 1

2

根据PEP 8 - The official Python style guide,您的代码格式似乎很好。但请记住,有些事情是偏好问题。采用所有建议不如在代码中保持一致重要。您可以使用代码格式化程序来帮助您。不同的代码格式化程序有不同的默认设置。例如,由 Black 格式化的代码最终会是这样的:

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
)

这是因为在黑色中,每行的默认最大字符数设置为 88,而 PEP 8 为 79。

于 2021-07-09T17:07:58.950 回答