다음과 같은 목록 이해력 (예 :)이있는 경우 :
['' for x in myList]
목록의 모든 요소에 대해 빈 문자열이있는 새 목록을 효과적으로 만들려면 x
. 사용하지 않는 x
변수 를 선언 할 필요가 없도록 이것을 작성하는 더 깨끗한 방법이 있습니까?
답변
_
for 루프 및 튜플 할당에서 무시 된 멤버의 표준 자리 표시 자 이름입니다. 예 :
['' for _ in myList]
[a+d for a, _, _, d, _ in fiveTuples]
BTW 목록은 목록 이해없이 작성 될 수 있습니다 (문자열, 정수 등과 같은 불변 멤버 목록을 만들고 싶다고 가정).
[''] * len(myList)
답변
아니요. Zen이 말했듯이 특별한 경우는 규칙을 위반할만큼 특별하지 않습니다. 반복되는 항목의 항목을 사용하지 않는 루프와 압축을 풀 “대상”이 있다는 규칙이 특별한 경우입니다.
그러나 _
일반적으로 “의도적으로 사용되지 않은”것으로 이해되는 변수 이름으로 사용할 수 있습니다 (PyLint 등도이를 알고 존중합니다).
답변
그것은 사용 밝혀 dummy*
변수 이름과 같은 트릭 마찬가지로 (시작 워드 더미이다) _
. _
알려진 표준이며 의미있는 변수 이름을 사용하는 것이 좋습니다. 당신이 사용할 수 있도록 dummy
, dummy1
, dummy_anything
. 이러한 변수 이름을 사용하면 PyLint
불평하지 않습니다.
답변
같은 줄의 for 루프 뒤에 다음 주석을 추가합니다.
#pylint : disable = unused-variable
for i in range(100): #pylint: disable=unused-variable
답변
인수의 이름을 지정해야하는 경우 (예 : 이름으로 참조되는 특정 인수를 사용하지 않는 모의를 작성할 때) 다음 단축 메서드를 추가 할 수 있습니다.
def UnusedArgument(_):
pass
다음과 같이 사용하십시오
def SomeMethod(name_should_remain):
UnusedArgument(name_should_remain)
답변
생성기 객체는 실제로 변수를 사용하지 않습니다. 그래서 뭔가
list(('' for x in myList))
트릭을해야합니다. x는 생성기 이해도 외부의 변수로 정의되지 않습니다.
답변
_
변수에 사람이 읽을 수있는 이름을 지정하려는 경우 변수 이름 앞에 추가 할 수도 있습니다 . 예를 들어, 당신은 사용할 수 있습니다 _foo
, _foo1
, _anything
및 PyLint 불평하지 않습니다. for 루프에서는 다음과 같습니다.
for _something in range(10):
do_something_else()
편집 : 예제 추가