在Python中,我应该在哪里中断一条长线

在Python中,我应该在哪里中断一条长线,python,line,long-integer,break,code-formatting,Python,Line,Long Integer,Break,Code Formatting,我的Python代码中有一行很长的代码: long\u variable\u name=[int(name)表示long\u variable\u name中的name]如果long\u variable\u name为None 将其拆分为小于80个字符的正确方法是什么?这确实是一个意见问题,但如果您要将其拆分为两行,我发现以下内容更具表现力: if long_variable_name: long_variable_name = [int(name) for name in long

我的Python代码中有一行很长的代码:

long\u variable\u name=[int(name)表示long\u variable\u name中的name]如果long\u variable\u name为None

将其拆分为小于80个字符的正确方法是什么?

这确实是一个意见问题,但如果您要将其拆分为两行,我发现以下内容更具表现力:

if long_variable_name:
    long_variable_name = [int(name) for name in long_variable_name]
else:
    long_variable_name = None
内联
if..else
语句对我这个人类来说是错误的,因为条件介于两个可能的赋值之间

另一种选择是请求原谅而不是允许:

try:
    long_variable_name = [int(name) for name in long_variable_name]
except TypeError:
    long_variable_name = None
如果您不确定
long\u variable\u name
是否可编辑,那么这可能就是您需要的。(如果您认为
long\u variable\u name
的任何元素可能无法转换为
int
s,您也可以捕获
ValueError
)。
`

我最终将代码格式化为:

long\u变量\u名称=[
int(name)表示long_variable_name]中的name,如果long_variable_name,则表示None

老实说:长度还可以。我们没有终端了,所以100-110个字符是合理的。如果您想改进行,请将列表理解重构为一个函数,该函数的名称可以解释它所做的事情。您可以在表达式中插入括号,在任何地方打断它:
long\u variable\u name=([int(name)表示long\u variable\u name中的name]如果long\u variable\u name,则表示None)
if语句中应重构为完整的
if语句。有多个Python风格的指南。根据这些指南,不适合单行的条件表达式可能会有帮助,也可能不会有帮助。有一个与@PaulPanzer链接的谷歌,任何公司都可能有自己的。他们可能会告诉你,你可以使用更长的线,或者在哪里断线,或者其他各种选项。一个很好的默认是PEP 8,如果你没有理由使用不同的样式指南,因为它是Python基金会推荐的。@ Daniel H,我想根据PEP 8格式化代码,但是我没有发现任何破坏这种类型的构造的提示。谁说<代码> LangyValuabLyNeX<代码>本来是代码>没有< /代码>?它可以是0或
[]
。这不是等价的,你是对的,我已经更正了
if
语句。这将是一个注释,但在注释中格式化代码很困难。很抱歉,它仍然不是等效的。应该有一个else部分将
long\u variable\u name
设置为
None
。此外,基本上你说的是三元表达式是不可读的。这是你的观点。虽然我同意你关于可读性的观点,但我不想改变结构。我只想把它分成几行。