python - Python 是否缩进 ): 在函数末尾遵循 pep8 样式?
问题描述
对于示例函数声明:
def foo(
long_parameter_name_1, long_parameter_name_2 = "default value var 2",
long_parameter_name_3 = "default value var 3", long_parameter_name_4 = "default value var 4"
):
上述函数声明方法是否遵循 pep8 样式指南作为以下函数定义的修改版本,以便处理超过 80 个字符的行的参数?我发现它对于具有默认值的长行更具可读性,但 pep8 样式指南未指定此条件。
def foo(long_parameter_name_1, long_parameter_name_2 = "default value var 2",
long_parameter_name_3 = "default value var 3", long_parameter_name_ = "default value var 4"):
解决方案
PEP-8 允许两者;请参阅缩进讨论的最后一节。但是,它还建议在关键字参数中不要有空格=
,并且不需要对参数进行太多缩进。缩进应该匹配,但如果第一个参数在新行上,它不需要缩进到开头(
。
任何一个
def foo(
long_parameter_name_1, long_parameter_name_2="default value var 2",
long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"
):
或者
def foo(
long_parameter_name_1, long_parameter_name_2="default value var 2",
long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"):
是可以接受的。
不过,我会更进一步,并建议在任何一种情况下,您都将自己限制为每行一个参数。
def foo(
long_parameter_name_1,
long_parameter_name_2="default value var 2",
long_parameter_name_3="default value var 3",
long_parameter_name_4="default value var 4"
):
或者
def foo(
long_parameter_name_1,
long_parameter_name_2="default value var 2",
long_parameter_name_3="default value var 3",
long_parameter_name_4="default value var 4"):
但偏爱第一个。(在第一种情况下,您可能还希望,
在最后一个参数之后包含一个可选的尾随,以在您从不添加或删除参数的情况下简化差异。)
推荐阅读
- bash - 无法设置从配置文件中的行馈送的 bash 环境路径
- java - 使用 Spring boot 1.5.10.RELEASE 在我的项目中 Gzip 压缩不起作用
- c - void 指针是如何实现的?
- javascript - JS如何知道在Button Click上做什么
- android - 在 Activity/IME 的 onDestroy 中启动线程执行是否安全?
- ios - 没有年份的 iOS 日期格式,具有正确的本地化
- python - 重命名熊猫数据框中的索引值
- php - 链接到动态页码
- dart - 为什么飞镖不允许方法重载?
- javascript - 移动共享 Google 云端硬盘中的文件