このようなリストの理解(たとえば)がある場合:
['' for x in myList]
リスト内のすべての要素に空の文字列を含む新しいリストを効果的に作成するために、x
を使用することはありません。これをより簡潔に書く方法はあるので、未使用のx
変数を宣言する必要はありませんか?
_
は、for-loopおよびTuple割り当てで無視されるメンバーの標準プレースホルダー名です。
['' for _ in myList]
[a+d for a, _, _, d, _ in fiveTuples]
ところで、リストを理解することなくリストを書くことができます(文字列、整数などのような不変のメンバーのリストを作成したい場合)。
[''] * len(myList)
いいえ。禅が言っているように、特別なケースは規則を破るほど特別ではありません。ループの特別なケースは、反復されるもののアイテムを使用しないループと、アンパックする「ターゲット」があるというルールです。
ただし、変数名として_
を使用できます。これは通常、「意図的に使用されていない」と理解されます(PyLintなどでもこれを認識し、尊重しています)。
変数名がdummy*
と同じトリックを行うため、_
(開始Wordはダミー)を使用することがわかります。 _
は既知の標準であり、意味のある変数名を使用することをお勧めします。したがって、dummy
、dummy1
、dummy_anything
を使用できます。これらの変数名を使用することで、PyLint
は文句を言いません。
引数に名前を付ける必要がある場合(たとえば、名前で参照される特定の引数を使用しないモックを作成する場合)、このショートカットメソッドを追加できます。
def UnusedArgument(_):
pass
そして、このように使用します
def SomeMethod(name_should_remain):
UnusedArgument(name_should_remain)
同じ行のforループの後に次のコメントを追加します。
#pylint:disable = unused-variable
for i in range(100): #pylint: disable=unused-variable
ジェネレーターオブジェクトは、実際には変数を使用しません。のようなもの
list(('' for x in myList))
トリックを行う必要があります。 xは、ジェネレーター内包の外側の変数として定義されていないことに注意してください。
変数に人間が読める名前を付けたい場合は、_
を変数名の先頭に追加することもできます。たとえば、_foo
、_foo1
、_anything
を使用でき、PyLintは文句を言いません。 forループでは、次のようになります。
for _something in range(10):
do_something_else()
編集:例を追加