Python括号约定

hcs*_*s42 5 python coding-style conventions

您认为在代码中编写字典文字时主要使用的约定是什么?

我会写一个可能的约定作为答案.

hcs*_*s42 18

my_dictionary = {
    1: 'something',
    2: 'some other thing',
}
Run Code Online (Sandbox Code Playgroud)

  • 尾随逗号的+1. (8认同)
  • 添加一行是带有逗号的单行差异. (4认同)

Len*_*bro 13

我会说几乎没有标准.

我见过两种缩进方式:

Indent 1:
my_dictionary = {
    'uno': 'something',
    'number two': 'some other thing',
}

Indent 2:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
                 }
Run Code Online (Sandbox Code Playgroud)

我看到有三个人有最后一个括号:

End 1:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
}

End 2:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
                 }

End 3:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',}
Run Code Online (Sandbox Code Playgroud)

有时你会证明这些价值观:

my_dictionary = {'uno':        'something',
                 'number two': 'some other thing',
                 }
Run Code Online (Sandbox Code Playgroud)

有时甚至是冒号:

my_dictionary = {'uno'        : 'something',
                 'number two' : 'some other thing',
                 }
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪.

有时你有一个逗号,有时不是:

my_dictionary = {'uno': 'something',
                 'number two': 'some other thing'}
Run Code Online (Sandbox Code Playgroud)

有时你把它全部放在一排(如果它适合).

my_dictionary = {'uno': 'something', 2: 'some other thing'}
Run Code Online (Sandbox Code Playgroud)

每个人似乎都有自己的风格组合.就个人而言,我倾向于你在你的例子中使用的风格,除非有理由不这样做.不常见的常见原因是您将字典作为语句的一部分.像这样:

amethodthattakesadict({'hey': 'this',
                       'looks': 'a',
                       'bit': 'shitty',
                      })
Run Code Online (Sandbox Code Playgroud)

我建议你让自己适应编写你正在编辑的代码的人的风格.如果这是你的代码:按你喜欢的方式做.:-)

  • 我认为实际上由PEP8控制的那些例子的唯一部分是冒号周围的间距.零之前,一之后. (5认同)
  • +1用于很好地描述所有可能性. (2认同)

Ned*_*der 8

关于结束括号:我更喜欢这样:

my_dictionary = {
   'a': 'first value',
   'b': 'second',
   }
Run Code Online (Sandbox Code Playgroud)

我会告诉你原因:因为Python代码缩进没有关闭令牌,代码是这样缩进的:第一行(if,while,def等)从子句的其余部分缩进,所有其他行缩进相同的金额.该子句的最后一行与其他所有内容一起缩进.下一行缩进与第一行相同的是下一个子句的第一行,而不是这一行的最后一行.

因此,我喜欢使用与代码子句类似的约定来缩进数据结构,即使数据结构具有明确的结束标记,因此可以具有更大的灵活性.