python - Python flake8 py 错误地报告 W391(文件末尾没有换行符)
问题描述
W391 表示文件末尾应该有一个(并且只有一个)空白行。但是,当文件末尾至少有一个换行符时,flake8 会报告错误:
$ cat /tmp/test.py
def hello():
print('hello')
hello()
$ hexdump -C /tmp/test.py
00000000 64 65 66 20 68 65 6c 6c 6f 28 29 3a 0a 20 20 20 |def hello():. |
00000010 20 70 72 69 6e 74 28 27 68 65 6c 6c 6f 27 29 0a | print('hello').|
00000020 0a 0a 68 65 6c 6c 6f 28 29 0a 0a |..hello()..|
0000002b
您可以在上面看到实际上文件末尾只有一个空行(0a
is \n
)。但是,当我运行 flake8 时,我收到 W391 错误:
$ flake8 /tmp/test.py
/tmp/test.py:6:1: W391 blank line at end of file
这是为什么?
解决方案
显然 vim 会自动为每个文件添加一个换行符,这让我误以为最后一个空白行不存在。随着时间的推移,这个隐含的换行符让我误以为最后两个换行符创建了一个空白行。
所以,警告是正确的。\n
文件末尾应该只有一个。
推荐阅读
- python - 如何在python中存储字符串变量并在函数中传递它们?
- authentication - Redis:redis-cli 不要求输入密码
- r - 获取与前一个值和下一个值的差异
- java - 如何使用 selenium 和 Java 在上下文中定位类型的提示消息?
- rust - 如果它们等于最接近于零,有没有办法告诉 rust 选择正数(例如:-2 0 2)=> 2
- excel - 字段中的VBA Excel更改值
- c++ - 如何处理使用 .ui 文件生成的 .h 文件?
- sql-server - 如何将解密证书密码作为参数传递给存储过程
- sql - 使用多列进行排名
- php - 从 HTML 中获取 PHP 变量