什么时候在Python中使用分号被认为是“好的”还是“可接受的”?

时间:2013-10-14 17:09:26

标签: python

Python是一种“以空格分隔”的语言。但是,允许使用分号 。例如,以下工作但不赞成:

print("Hello!");
print("This is valid");

我已经使用python好几年了,唯一一次使用分号是用python生成一次性命令行脚本:

python -c "import inspect, mymodule; print(inspect.getfile(mymodule))"

或在SO的评论中添加代码(即“您应该尝试import os; print os.path.join(a,b)”)

我还在this answer to a similar question中注意到分号也可用于制作一行if块,如

if x < y < z: print(x); print(y); print(z) 

这对我给出的两个用法示例(命令行脚本和注释)很方便。


以上示例用于以段落形式传递代码或制作简短的代码段,但不是我在生产代码库中所期望的。

这是我的问题:在python中,是否有理由在生产代码中使用分号?我想他们只是因为我引用的原因而被添加到语言中,但是Guido总是有可能考虑到更宏伟的计划。没有意见;我正在寻找分号有用的现有代码中的示例,或者来自python docs或Guido关于分号使用的某种语句。

2 个答案:

答案 0 :(得分:17)

PEP 8是官方风格指南,并说:

  

通常不鼓励使用复合语句(同一行上的多个语句)。

(参见PEP之后的例子。)

虽然我不同意PEP 8所说的一切,但如果你正在寻找一个权威的来源,就是这样。您应该仅使用多语句行作为最后的手段。 (python -c是这种最后手段的一个很好的例子,因为在这种情况下你无法使用实际的换行符。)

答案 1 :(得分:2)

我一直在代码中使用分号。我们的代码经常跨行折叠,分号是一个声明结束的明确断言。

[i.rsplit('/')[-1]  for i in lst]

请参阅?它们对可读性非常有帮助。