1. ホーム
  2. python

[解決済み] Pylintのエラーは隠します。

2022-02-16 22:45:11

質問

以下は Python フラグメントコードが解析されるのは Pylint :

if type(result) is array.array:
    read = result.tobytes()

... 最後の行で次のようなエラーが発生します。

E:401,22: Instance of 'int' has no 'tobytes' member\ 
 (but some types could not be inferred) (maybe-no-member)

result 変数が外部関数から受信されます。Pylintが理解できるようにするには、どのようにコードを変更(修正)すればよいのでしょうか?または、関数の結果がint型以外の型になる可能性があることを伝えるにはどうしたらよいですか?あるいは、その特定の行を無視するようにするにはどうすればよいでしょうか?(私はこの質問の順番で答えを出すことを望みます)

どのように解決するのですか?

何らかの理由で、pylint は 'result' が配列型であるかもしれない(そして 'if' ブランチでは確実にそうなる)ことを取得しません。そのことをpylintに伝える方法は今のところありませんが、いずれ可能になることを期待しています。 ですから、今のところ、その特定の行に対する警告を無効にするためには # pylint: disable=maybe-no-member の後か、そのすぐ上にあるステートメントを削除してください。たとえば

if type(result) is array.array:
    read = result.tobytes() # pylint: disable=maybe-no-member

または

if type(result) is array.array:
    # pylint: disable=maybe-no-member
    read = result.tobytes()