如何在pylint中启用打印语句捕获?

2024-10-02 22:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件p.py,其中只有一行:

print('hello')

我使用以下工具运行pylint(2.6.0):

pylint p.py --enable=E

我得到的只是:

************* Module p
p.py:1:0: C0304: Final newline missing (missing-final-newline)
p.py:1:0: C0114: Missing module docstring (missing-module-docstring)

----------------------------------------------------------------------

Your code has been rated at -10.00/10 (previous run: -10.00/10, +0.00)

如何让派林抛出E1601


Tags: 文件工具pyhelloenablenewlinepylintfinal
2条回答

要触发此错误,您需要运行Python2.x并使用print语句而不是print函数

打印语句是Python 2.x早期版本中的唯一选项。直到决定用Python3中的打印函数替换它们之后,才将打印函数添加到Python2.6中

# Print statement, only works in Python 2.x
print 'hello'

# Print function, Python >= 2.6
print('hello')

运行Python时Pylint不会发出E1601>;=3.0. 在Python3中,使用print语句不是风格错误,而是语法错误。我对E1601存在的最佳猜测是鼓励Python 2开发人员在可能的情况下使用Python 3功能,以便他们的代码更具可移植性

我知道这并不像问题所问的那样使用pylint,但我在CI中使用了一个简单的bash one行程序来捕捉对print()的调用:

prints=$(grep -rn 'print('); [[ -z $prints ]] && echo 'no prints' || printf "found prints:\n$prints\n"

||路径中,您可以exit 1使CI运行失败,或者执行任何需要的操作

相关问题 更多 >