2

在我之前的问题(“Pylint E0202 误报?​​”)之后是另一个问题(我猜很具体)

我们正在使用模块子流程来执行一个子流程。
创建示例代码导致以下结果:

"Example code for E1103"

import subprocess

pipeOpen = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

(responseData, errorData) = pipeOpen.communicate()

print "Error code: '%s'. Error data: '%s'" % (pipeOpen.returncode, errorData.strip("\n").strip("\r"))

皮林特会说:

E1103: 9,67: 'list' 的实例没有'strip' 成员(但无法推断某些类型)

查看 pipeOpen.communicate() 它归结为 _communicate。事实上,stderr 被初始化为一个列表,但是,如果 self.universal_newlines 为真,则在返回之前,它会将列表转换为带有换行符的字符串。

这是一个案例#pylint: ignore-msg=E1103还是更好地报告给 pylint 开发者?

4

1 回答 1

1

好吧,如果print(pipeOpen.universal_newlines and hasattr(file, 'newlines'))返回True并且您在实际运行代码时没有收到任何错误,那么您应该将此报告给 pylint 开发人员 + 同时忽略该消息

于 2012-03-09T17:40:29.197 回答