사용하지 않는 함수 인수를 어떻게 표시 할 수 있습니까?
튜플을 "해체"할 때 _
관심없는 튜플 요소를 나타내는 데 사용할 수 있습니다 . 예 :
>>> a,_,_ = (1,2,3)
>>> a
1
Python 2.x를 사용하여 함수 인수로 어떻게 동일하게 표현할 수 있습니까? 밑줄을 사용하려고했습니다.
>>> def f(a,_,_): return a
...
File "<stdin>", line 1
SyntaxError: duplicate argument '_' in function definition
나는 또한 인수를 완전히 생략하려고 시도했습니다.
>>> def f(a,,): return a
File "<stdin>", line 1
def f(a,,): return a
^
SyntaxError: invalid syntax
같은 것을 달성하는 다른 방법이 있습니까?
사용하지 않는 인수로 수행하는 작업은 다음과 같습니다.
def f(a, *unused):
return a
방금 생각한 재미있는 방법은 변수를 삭제하는 것입니다.
def f(foo, unused1, unused2, unused3):
del unused1, unused2, unused3
return foo
여기에는 많은 장점이 있습니다.
- 사용하지 않는 변수는 위치 인수와 키워드 인수 모두로 함수를 호출 할 때 계속 사용할 수 있습니다.
- 나중에 사용하기 시작하면 삭제되므로 사용할 수 없으므로 실수 할 위험이 적습니다.
- 표준 파이썬 구문입니다.
- PyCharm은 옳은 일을합니다!
- PyLint는 불평하지 않으며 사용
del
은 PyLint 매뉴얼 에서 권장하는 솔루션 입니다.
밑줄은 우리가 신경 쓰지 않는 것에 사용되며 * args의 *는 인수 목록을 나타냅니다. 따라서 * _를 사용하여 신경 쓰지 않는 목록을 나타낼 수 있습니다.
def foo(bar, *_):
return bar
PyCharm의 수표도 통과합니다.
'_'를 접두어로 사용할 수 있으므로 pylint는 다음 매개 변수를 무시합니다.
def f(a, _b, _c):
args와 키워드 arg가 모두 있으면 다음을 사용해야합니다.
def f(a, *args, **kwargs):
return a
나는 받아 들여진 대답이 나쁘다고 생각한다. 그러나 당신이 인수를 다루는 "Perl 방식"이라고 부르는 것을 사용한다면 여전히 작동 할 수있다 sub
. 수동 인수 압축 해제 포함) :
함수에는 3 개의 인수가 있습니다. 이것이 호출되는 것입니다 (Duck 타이핑, 기억하십니까?). 따라서 다음을 얻을 수 있습니다.
def funfun(a, b, c):
return b * 2
2 unused parameters. But now, enter improved larsmans' approach:
def funfun(*args):
return args[1] * 2
And there go the warnings...
However, I still enjoy more the boxed's way:
def funfun(a, b, c):
del a, c
return b * 2
It keeps the self-documenting quality of parameter names. They're a feature, not a bug.
But, the language itself doesn't force you there - you could also go the other way around, and just let all your function have the signature (*args, **kwargs)
, and do the argument parsing manually every time. Imagine the level of control that gives you. And no more exceptions when being called in a deprecated way after changing your "signature" (argument count and meaning). This is something worth considering ;)
참고URL : https://stackoverflow.com/questions/10025680/how-can-i-denote-unused-function-arguments
'programing tip' 카테고리의 다른 글
요소가 div인지 확인 (0) | 2020.12.14 |
---|---|
Clojure의 디렉토리에 파일 나열 (0) | 2020.12.14 |
Jenkins-SCM의 변경 사항을 폴링하도록 Jenkins 구성 (0) | 2020.12.14 |
프록시 뒤의 npm이 상태 403으로 실패합니다. (0) | 2020.12.14 |
웹 API 호출시 C # 지원되지 않는 권한 부여 유형 (0) | 2020.12.14 |