如何在 pylint 中启用打印语句捕获?
How do I enable print statement catching in pylint?
我有一个文件 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)
如何让 pylint 抛出 E1601?
要触发此错误,您需要 运行 Python 2.x 并使用打印语句而不是打印函数
打印语句是 Python 2.x 早期版本中的唯一选项。只是决定在 Python 3 中用打印功能替换它们,打印功能才添加到 Python 2.6.
# Print statement, only works in Python 2.x
print 'hello'
# Print function, Python >= 2.6
print('hello')
当 运行 Python >= 3.0 时,Pylint 不会发出 E1601。在 Python 3 中,使用 print 语句不是文体错误,而是语法错误。我最好的猜测是 E1601 存在的原因是鼓励 Python 2 位开发人员尽可能使用 Python 3 项功能,以便他们的代码更具可移植性。
我知道这并没有像问题所问的那样使用 pylint
,但是我在 CI 中使用了一个简单的 bash 单行代码来捕获对 [=12= 的调用]:
prints=$(grep -rn 'print('); [[ -z $prints ]] && echo 'no prints' || printf "found prints:\n$prints\n"
在 ||
路径中,您可以 exit 1
使 CI 运行 或任何您需要的失败。
我有一个文件 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)
如何让 pylint 抛出 E1601?
要触发此错误,您需要 运行 Python 2.x 并使用打印语句而不是打印函数
打印语句是 Python 2.x 早期版本中的唯一选项。只是决定在 Python 3 中用打印功能替换它们,打印功能才添加到 Python 2.6.
# Print statement, only works in Python 2.x
print 'hello'
# Print function, Python >= 2.6
print('hello')
当 运行 Python >= 3.0 时,Pylint 不会发出 E1601。在 Python 3 中,使用 print 语句不是文体错误,而是语法错误。我最好的猜测是 E1601 存在的原因是鼓励 Python 2 位开发人员尽可能使用 Python 3 项功能,以便他们的代码更具可移植性。
我知道这并没有像问题所问的那样使用 pylint
,但是我在 CI 中使用了一个简单的 bash 单行代码来捕获对 [=12= 的调用]:
prints=$(grep -rn 'print('); [[ -z $prints ]] && echo 'no prints' || printf "found prints:\n$prints\n"
在 ||
路径中,您可以 exit 1
使 CI 运行 或任何您需要的失败。