Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
252 views
in Technique[技术] by (71.8m points)

python - Should I add a trailing comma after the last argument in a function call?

What is better to do?

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

or

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

And what in the following cases:

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

or

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

?

Reasons for adding a trailing comma in data structures are familiar to me, but what about function calls?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think there's no technical reason to avoid trailing commas in function calls, but some people probably do find them distracting. Some may stop and say:

"Hmmm, I wonder if that's really supposed to be there?"

I hesitate to call this a benefit, but one effect of using trailing commas in conjunction with an indented style is to make version control diffs look a little bit cleaner when adding an argument.

For example, a function like this:

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

...called like this:

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

...then changed to this:

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

produces this diff in git:

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

Whereas,

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

changed to...

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

produces this diff in git:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...