当字符串超过120个字符时,如何在IntelliJ(编码Python)上包装文本?

时间:2017-06-06 02:50:51

标签: python intellij-idea

我正在使用IntelliJ在Python中创建一个字典,第二个条目给我一个错误PEP 8(行太长(155> 120个字符)。

classic_common = {'Abusive Sergeant': 'ADD ME TO YOUR DECK, YOU MAGGOT!',
                  **'Acolyte of Pain': "He trained when he was younger to be an acolyte of joy, but things didn't work out like he thought they would",**

如何包装字符串使其仍然起作用并且看起来可读。

感谢。

1 个答案:

答案 0 :(得分:0)

在没有深入了解如何让IntelliJ自动执行此操作的情况下,这里解释了如何在Python中包装长行(包括长字符串):

在Python中,可以使用explicitimplicit line joining在多行上写出单个语句。

在前者中,反斜杠(' \',"行继续符号")用于表示一行的结尾。例如(就像进入Python解释器一样):

>>> a = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \
... + 9 + 10
>>> print(a)
55

另一方面,隐式线连接允许括号,方括号或花括号内的多行上的表达式自动连接在一起。换句话说,任何数量的空白区域都在其中被处理相同。例如(出于说明目的使用不良风格):

>>> a = [1, 2, 3, 4, 5, 6  # comments are allowed too
... # as are empty lines
...
... # and even explicit line breaks
... \
... , 7, 8]
>>> print(a)
[1, 2, 3, 4, 5, 6, 7, 8]

事实证明,当您将键值对放在不同的行上时,您已经在代码片段中使用隐式行连接。

除了隐式行连接之外,您还可以利用Python连接连续字符串而它们之间没有运算符的事实。还有一个例子:

>>> a = 'The quick brown' 'fox'
>>> b = 'The quick brown' + 'fox'
>>> print(a==b)
True

将这一切放在一起,因为你在大括号内,你可以在任何点关闭你的字符串,然后将字符串的下一部分放在下一行的任何地方。括号内的白色空间不可知意味着您可以对齐字符串每一行的开头(注意"他",""和#34;思想"在下面对齐)。

因此,您可以获得类似the answer from idjaw's comment的内容:

>>> classic_common = {'Abusive Sergeant': 'ADD ME TO YOUR DECK, YOU MAGGOT!',
                      'Acolyte of Pain': "He trained when he was younger to be an acolyte " 
                                         "of joy, but things didn't work out like he " 
                                         "thought they would",
                      'some_other_key': 'some other value'}