2

以前の質問 ( 「Pylint E0202 False Positive?」 ) に続いて、別の質問があります (非常に具体的だと思います) 。

モジュール subprocess を使用して、サブプロセスを実行しています。
サンプル コードを作成すると、次のようになりました。

"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: 'list' のインスタンスに 'strip' メンバーがありません (ただし、一部の型は推論できませんでした)

pipeOpen.communicate() を見ると、_communicate に行き着きます。実際、stderr はリストに初期化されますが、self.universal_newlines が true の場合、戻る前に、リストを改行を含む文字列に変換します。

#pylint: ignore-msg=E1103これはpylint 開発者に報告するか、より良いケースですか?

4

1 に答える 1

1

実際にコードを実行しているときにエラーがprint(pipeOpen.universal_newlines and hasattr(file, 'newlines'))返されず、エラーが発生しない場合は、これを pylint 開発者に報告する必要があります + その間はメッセージを無視しますTrue

于 2012-03-09T17:40:29.197 に答える