涉及`format()`点符号时的Python格式

如何解决涉及`format()`点符号时的Python格式

我是 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,folder=sel_folder
             ))

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

解决方法

根据PEP 8 - The official Python style guide,您的代码看起来格式很好。但请记住,有些事情是偏好问题。采纳所有建议不如在代码中保持一致重要。您可以使用 code formatter 来帮助您。不同的代码格式化程序有不同的默认设置。例如,由 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
)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?