python - 我应该在函数调用的最后一个参数之后添加一个逗号吗?

标签 python function coding-style parameter-passing

做什么比较好?

self.call(1, True, "hi")

self.call(1, True, "hi",)

以及在以下情况下:

self.call(
    1,
    True,
    "hi"
)

self.call(
    1,
    True,
    "hi",
)

?

在数据结构中添加尾随逗号的原因我很熟悉,但是函数调用呢?

最佳答案

在函数调用中避免使用尾随逗号没有技术原因,但有些人可能会发现它们会分散注意力。有些人可能想知道:嗯,那个逗号应该在那里吗?

将尾随逗号与缩进样式结合使用的一个效果是在添加参数时使版本控制差异看起来更清晰

例如这样的函数:

def my_fun(a, b, c=None):
    ...

...这样称呼:

my_fun(
    a='abc',
    b=123
)

...然后改成这样:

my_fun(
    a='abc',
    b=123,
    c='def'
)

在 git 中产生这个差异:

$ git diff
...
 my_fun(
     a='abc',
-    b=123
+    b=123,
+    c='def'
 )

然而,

my_fun(
    a='abc',
    b=123,
)

改为...

my_fun(
    a='abc',
    b=123,
    c='def',
)

在 git 中产生这个差异:

$ git diff
...
 my_fun(
     a='abc',
     b=123,
+    c='def',
 )

关于python - 我应该在函数调用的最后一个参数之后添加一个逗号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087742/

相关文章:

python - Spyder 终端内的 3D matplotlib 图

r - 如何在 R ggplot 图形的函数中包含查找表和/或将某些字符串传递到图形中?

c++ - 捕获函数名称

c++ - 处理程序调用速度: Objective-C vs virtual functions

c# - 基类可以包含对其子类之一的引用吗?

python - 使用 pygame 通过按键结束循环

python - 如何将不等号和等号变成字符串

java - 在评论中解释集合中没有重复项的正确数学方法

python - 如何在 python 中显示我的图像?

language-agnostic - 麻烦想出函数的好名字