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

前端 未结 5 906
慢半拍i
慢半拍i 2020-12-15 16:15

What is better to do?

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

or

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

And what in the following

5条回答
  •  忘掉有多难
    2020-12-15 16:46

    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',
     )
    

提交回复
热议问题