【问题标题】:Why does IDLE add a newline after my code?为什么 IDLE 在我的代码后添加换行符?
【发布时间】:2021-03-10 13:23:16
【问题描述】:

在我保存 .py 文件时,IDLE (Python 3.9 x64) 将在代码本身之后添加一个换行符。它在让我好奇的同时引发了我的强迫症。例如,在编码时采用完全原始的程序最后一行:

print("Hello, world!")

然而,当保存时,它变成:

print("Hello, world!")
# ghost line!

那条额外的线有什么意义——我可以把它关掉吗?

【问题讨论】:

  • 这似乎不是一个真正的问题,是吗?你能解释一下为什么这对你来说是个问题吗?无论如何,如果您愿意,您可以尝试其他 IDE / 编辑器。
  • 你没有看到新的一行,只是下一行的空间。通常,文本中的每一行都以“换行符”字符结尾。对于某些扫描方法,或者说背靠背文件副本,没有换行符可能会出现问题。

标签: python python-idle python-packaging


【解决方案1】:

自 2000 年第一次提交以来,IDLE 已确保保存的文件以换行符 ('\n') 结束。我相信 Python 编译器曾要求每一行,包括最后一行,都是完整的,以换行符结尾。在某些情况下,现在可能会更加宽松,但我不确定。对于需要正确结尾的文件,可能还有其他操作。

鬼不存在,鬼线也不存在。一行 0 个字符并不是真正的一行。最后一行后左边距的光标已准备好开始新的一行。

【讨论】:

  • 谢谢!请举例说明“可能需要对文件进行正确结尾的其他操作。”
【解决方案2】:

Python 的最佳实践是在代码末尾多加一行。如果你明确地去删除最后一行,那么它就不会在那里。但是,我的建议是保留它。遵循最佳做法总是更好。

【讨论】:

  • 更准确地说,最好用换行符来完成最后一行。这不会产生额外的行。显示时,光标将位于左边距,准备开始新的一行。
  • 这种“最佳实践”是否真的记录在任何地方?
  • 你能提供一些参考吗?我问,通常,社区有关于此类风格指南的注释(如果没有文档)。
  • 就 Find 而言,PEP-8 样式指南中并未明确指出末尾的换行符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多