python kwargs 예제

우리가 **kwargs를 사용할 수있는 방법을 보여 줄 또 다른 짧은 프로그램을 만들어 봅시다. 여기서는 이름 사전을 인사하는 함수를 만듭니다. 먼저, 우리는 두 이름의 사전으로 시작합니다 : args및 * kwargs의 간결한 설명주셔서 감사합니다. 당신은 그것을 좋고 이해하기 쉽게 만들었습니다. args와 kwargs가 매우 편리한 또 다른 매우 일반적인 시나리오는 클래스로 작업 할 때입니다. 다른 사용자가 개발한 클래스의 기능을 확장하기 위해 일반적인 패턴은 클래스를 상속하고 변경하려는 메서드를 재정의하는 것입니다. 대규모 라이브러리 또는 프레임워크를 처리할 때 매우 자주 발생합니다. 예를 들어 Qt 응용 프로그램을 개발하는 경우 다음과 같은 코드가 있습니다. 아마도 오늘 당신은 소요 를 저장하는 인수의 일부를 사용하지 않는, 하지만 그들 중 유연한 수를 복용하여, 당신은 내일 당신이 일부를 사용하기로 결정하는 경우, 프로그램이 중단되지 않습니다 것을 알고있다. 우리는 단지 **kwargs을 사용했다는 사실에주의를 기울이십시오.

이는 주로 기본값이 많은 인수가 많은 함수이기 때문에 키워드 인수를 강제로 사용하기 위한 선택이며, 그 중 하나만 변경하는 데 관심이 있을 수 있습니다. 이것은 중대하다; 종으로 명확하고, 내 파이썬 책에서 찾을 수 없습니다! 함수와 반대로 * args 및 *kwargs클래스를 사용할 때 염두에 두어야 할 주름이 있는지 여부를 알고 싶습니다. 이제 함수에 추가 인수를 전달하여 **kwargs가 포함하고 싶은 많은 인수를 수락한다는 것을 보여 드리겠습니다. 방금 파이썬 / 장고를 시작했고이 같은 블로그는 정말 작업을 가속화합니다. defaults = {s0 : v0, s1 : v1} def test (**kwargs): defaults.update (kwargs) do_stuff (defaults) 두 예제는 같은 방식으로 사용될 수 있지만 후자는 이해하기 어렵다는 데 동의하기를 바랍니다. 또한 함수는 임의의 수의 인수로 호출할 수 있습니다. Pycharm, VS Code와 같은 파이썬 IDE를 사용하는 경우 함수가 어떤 인수를 사용하는지 보여 주지만 * args가있는 경우 제공 해야 할 것을 알 수 없습니다. 다음은 이 작업이 수행되는 방식의 일반적인 예입니다. 아래 기능은 국가를 키로, 수도를 가치로 합니다. 그런 다음 kwargs 를 통해 반복해서 인쇄하는 문을 인쇄하고 각 키워드를 할당된 값에 매핑합니다. 파이썬 코드에서 구문 오류가 발생하지 않도록 함수를 만들 때 인수의 순서를 염두에 두는 것이 중요합니다.