Python是一种“空格分隔”语言。但是,允许使用分号。例如,以下作品却是皱起了眉头: print("Hello!");print("This is valid"); 我一直在使用python几年,而我使用分号的唯一时间是使用python生
print("Hello!"); print("This is valid");
我一直在使用python几年,而我使用分号的唯一时间是使用python生成一次性的命令行脚本:
python -c "import inspect, mymodule; print(inspect.getfile(mymodule))"
或在SO的注释中添加代码(即“您应该尝试导入os; print os.path.join(a,b)”)
我也注意到在this answer to a similar question年,分号也可以用来做一行如果块,如
if x < y < z: print(x); print(y); print(z)
这对我给出的两个使用示例(命令行脚本和注释)是方便的。
以上示例用于以段落形式传送代码或进行短片段,但不能在生产代码库中预期。
这是我的问题:在python中,有没有理由在生产代码中使用分号?我想象,只是因为我所引用的原因,他们被添加到这个语言中,但是它总是有可能是Guido有一个更加宏伟的计划。没有意见我正在寻找来自现有代码的例子,其中分号是有用的,或者是来自python文档或Guido关于使用分号的某种语句。
PEP 8是官方风格指南,说:Compound statements (multiple statements on the same line) are generally discouraged.
(另请参阅PEP中的例子。)
虽然我不同意PEP 8所说的一切,如果你正在寻找一个权威的来源,那就是这样。您应该使用多语句行作为最后的手段。 (python -c是这样最后的一个很好的例子,因为在这种情况下你无法使用实际的linebreaks。)