python - PyCharm 重新格式化代码不会将行换行至指定长度

标签 python pycharm word-wrap

当我在 PyCharm 2020.3 Community Edition 中突出显示一段 Python 代码并尝试重新格式化代码操作时,重新格式化的代码不遵守我(相信我)在设置中指定的 80 个字符限制。

我做错了什么?

我的设置如下所示:

enter image description here

例如,我想要 86 个字符的行:

        normalized_stop_band_edge: float = prms['stop_band_edge_in_hz'] * sam_int_in_s

重新格式化为,例如:

        normalized_stop_band_edge: float = prms['stop_band_edge_in_hz'] * \
                                           sam_int_in_s

最佳答案

换行是特定于语言的。问题中显示了常规 IDE 设置的屏幕截图,但如果使用 Python 文件,则常规编辑器设置将被特定于语言的设置取代。

对于使用重新格式化代码(Ctrl + Alt + L)包装行长度限制的问题中的示例代码,必须配置2个设置:在文件 > 设置 > 编辑器 > 代码样式 > Python > 包裹和大括号

  1. 硬包装 (80)。
  2. 确保不超出右边距

enter image description here

但这还不够。必须考虑到问题中的示例有 2 级缩进(8 个空格或 2 个制表符)。这将需要运行 Reformat Code (Ctrl + Alt + L) 两次,并且示例行位于具有 2 级缩进的范围内。例如:

class MyClass:
    @staticmethod
    def my_func():

        normalized_stop_band_edge: float = prms['stop_band_edge_in_hz'] * sam_int_in_s

最初:

enter image description here

Ctrl + Alt + L一次后:

enter image description here

Ctrl + Alt + L两次后:

enter image description here

关于python - PyCharm 重新格式化代码不会将行换行至指定长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67324160/

相关文章:

python - 如何在 PyCharm 中设置 Python 2 首选项?

python - 如何卸载pycharm和rubymine?

android - 自动缩放 TextView 文本以适应边界

css - JavaFX TableView 换行文本选中行文本颜色

Python cmd 模块 - 从行中解析值

python - 如何使用 argparse Python 使用 '=' 作为参数分隔符?

python - 无法在 MAC OS 中通过 pip 安装 rpy2

HTML 按钮不会停止换行

python - 使用 python2 和 python3 创建一个 virtualenv

python - 在 lxml 中迭代时就地编辑树