涉及'format()`点表示法时的python格式设置

0md85ypi  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(337)

我是python新手,了解如何按照pep8标准格式化以下代码:
使用Python3.5SO 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标准吗?有这种感觉是违反直觉的 . 悬挂在一些线的末端。

bnl4lu3b

bnl4lu3b1#

根据官方python风格指南PEP8,您的代码的格式似乎很好。但是请记住,有些事情是偏好的问题。采纳所有建议不如在代码中保持一致性重要。您可以使用代码格式化程序来帮助您实现这一点。不同的代码格式化程序具有不同的默认设置。例如,由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。

相关问题