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)”)
import os; print os.path.join(a,b)
我在这个类似问题的答案中也注意到,分号也可以用来制作一个线条if块,例如
if
if x < y < z: print(x); print(y); print(z)
这对于我给出的两个用法示例(命令行脚本和注释)很方便。
上面的示例用于以段落形式交流代码或编写简短的摘要,但不是我希望在生产代码库中实现的功能。
这是我的问题:在python中,是否有理由在生产代码中使用分号?我认为仅出于我提到的原因将它们添加到语言中,但是Guido总是有可能考虑到更大的计划。请不要发表意见。我正在从分号有用的现有代码中查找示例,或者从python文档或Guido寻求有关分号使用的某种声明。
PEP 8是官方样式指南,其中说:
通常不建议使用复合语句(同一行上的多个语句)。
(另请参阅PEP之后的示例。)
尽管我不同意PEP 8所说的一切,但是如果您正在寻找权威的资料,那就足够了。您只能将多语句行用作最后的选择。(这python -c是最后选择的一个很好的例子,因为在这种情况下,您无法使用实际的换行符。)
python -c