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关于分号使用的某种语句。
答案 0 :(得分:17)
PEP 8是官方风格指南,并说:
通常不鼓励使用复合语句(同一行上的多个语句)。
(参见PEP之后的例子。)
虽然我不同意PEP 8所说的一切,但如果你正在寻找一个权威的来源,就是这样。您应该仅使用多语句行作为最后的手段。 (python -c
是这种最后手段的一个很好的例子,因为在这种情况下你无法使用实际的换行符。)
答案 1 :(得分:2)
我一直在代码中使用分号。我们的代码经常跨行折叠,分号是一个声明结束的明确断言。
[i.rsplit('/')[-1] for i in lst]
请参阅?它们对可读性非常有帮助。