※記事内に商品プロモーションを含むことがあります。
はじめに
PythonでPylintを使用したときに表示されるリファクタリングメッセージR1721(不要な内包表記)を抑制する方法を解説します。
Pythonの内包表記は処理が高速なためよく使用しますが、冗長になる場合があります。静的解析ツールPylintを使用すると、R1721として表示されます。Rはコードをリファクタリングすべきことを意味します。
この記事で検証したバージョンは以下の通りです。
- OS: Windows 10 Home
- Python 3.11.6
- Pylint 3.0.2
辞書 (dict) 内包表記と集合 (set) 内包表記を例に示します。
辞書内包表記のR1721
以下のような辞書内包表記で、辞書を作るスクリプトを例に示します。
|
|
これをPylintで解析すると、以下の結果になります。
R1721: Unnecessary use of a comprehension, use dict(enumerate(array)) instead. (unnecessary-comprehension)
内包表記ではなく、組込み関数のdict()
を使用せよと表示されます。辞書のキーを処理せずにそのまま使用する場合、R1721が出力されます。リファクタリング後のコードは以下になります。
|
|
集合内包表記のR1721
以下のような集合内包表記で、集合を作るスクリプトを例に示します。
|
|
これをPylintで解析すると、以下の結果になります。
R1721: Unnecessary use of a comprehension, use set(array2) instead. (unnecessary-comprehension)
内包表記ではなく、組込み関数のset()
を使用せよと表示されます。要素を処理せずにそのまま使用する場合、R1721が出力されます。リファクタリング後のコードは以下になります。
|
|