在延续线中的评论



说我有一个多行命令:

if 2>1 
 and 3>2:
    print True

if块中,我可以通过使用括号包裹线条来添加一个条件旁边的评论:

if (2>1 #my comment
 and 3>2):
    print True

实际上,它与PEP 8指南的建议这样做的方式保持一致:

包裹长行的首选方法是使用python的隐含线延续,括号,支架和支撑。通过在括号中包裹表达式,可以在多条线上折断长线。这些应优先使用后斜线进行线路延续。

但是,有时您需要使用连续性。例如,长而多重陈述不能使用隐式延续。然后,如何在特定行旁边添加评论?这不起作用:

with open('a') as f1, #my comment
 open('b') as f2:
    print True

更一般地,是否有一种通用方法可以在特定连续行旁边添加评论?

你不能。从Python参考手册(3.4)查找一些提取物:

评论以哈希字符(#)开头 字符串文字,并在物理线的末端结束。

以后斜线结尾的线无法携带评论

评论表示逻辑线的末尾,除非隐式 线加入规则被调用

隐式线加入:括号中的表达式,方括号或 卷发括号可以在没有一个以上的物理线上分开 使用后斜切

隐式续线可以携带评论

因此,参考手册明确地不允许在明确的延续线中添加注释。

您无法在同一行上进行评论和后斜线。您需要使用其他策略。

最基本的是调整评论文本以将其放置,例如在相关部分之前。您还可以通过重新分配将上下文返回上下文或具有描述性名称的函数或方法的代码来记录您的意图。

我看不到任何解决方案,除了嵌套 with

with open('a.txt', 'w') as f1: #comment1
    with open('b.txt', 'w') as f2: #comment2
        print True

您不能在同一行上结合线路末端注释(#)和线延续()。

我不建议这样做。 - 但是,有时您可以将您的评论伪装成字符串:

with open(('a', '# COMMENT THIS')[0]) as f1, 
     open(('b', '# COMMENT THAT')[0]) as f2:
    print(f1, f2)

最新更新