按照我剛纔的問題("Pylint E0202 False Positive?")這裏是另一個(非常具體的我猜的)Pylint E1103假陽性?
我們正在使用的模塊子進程來執行,那麼,子進程。
創建的示例代碼導致以下:
"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"))
pylint的將雖然說:
E1103:9,67:的 '列表' 實例沒有 '條' 構件(但某些類型的無法推斷)
尋找到pipeOpen.communicate()它下降到_communicate。事實上,stderr被初始化爲一個列表,但是,在返回之前,如果self.universal_newlines爲true,那麼它會將列表轉換爲帶有換行符的字符串。
這是#pylint: ignore-msg=E1103
或更好的報告給pylint開發者的案例嗎?
確實忽略該消息您嘗試設置'pipeOpen。 universal_newlines = true'? – Aprillion 2012-03-09 10:08:29
或'',「.join(errorData)'而不是'strip'如果它是一個列表而不是一個字符串? – Aprillion 2012-03-09 10:21:41
@deathApril是的,這是在Popen()中完成的。將更新代碼示例以反映我們的工作代碼 – 2012-03-09 11:18:00