을 필요로 파이썬의 내장이 같은 sorted()
기능 :분류 않는 이유는()의 주요 매개 변수는의 서명을 검사하는 경우 키워드 인수
import inspect
print(inspect.signature(sorted))
서명은 다음과 같습니다 (iterable, key=None, reverse=False)
. 당신이 key
인수 키워드 key=
을 필요로하지 않고 iterable
인수 후 key
인수를 제공 할 수처럼 here를 인수 위치 및 선택적 인수에 대한 이해를 바탕으로
, 그것은 보인다. 그러나 key
인수를 전달할 때는 항상 key=
을 지정해야합니다. 왜 그런가요?
은 이해 당신은 reverse=True
를 지정할 수 있지만, 어떤 key
인수하지 않고, 당신이에 대한 키워드를 필요 싶지만, 당신은 key
를 제공 할 때 당신이 key=
를 지정해야 할 것입니다 왜 이해가 안 원한다면 .
으로 표시됩니다.이 스레드는 많은 혼란을 해결합니다. –
사실, 이제는 더 혼란 스럽습니다. 현재 서명이 말하는 방식대로 기능을 작동시키지 않는 것이 어떻습니까? 함수가 키워드 전용 인수와 함께 작동하도록 만드는 요지는 무엇입니까? –
@ user123123123 :'sorted'와'list.sort'는'cmp' 인자를 취하기 위해 사용되었습니다. 그것이 제거되었을 때'key'와'reverse' 키워드 만 사용하면'cmp'를 사용하려고하는 코드에 더 명확한 오류를줌으로써 전환을 도왔습니다. 또한 인터페이스를 쉽게 변경하고 인수가 오는 순서를 기억할 필요가 없습니다. – user2357112