[파이썬] argparse set_defaults() 메서드 활용

Python의 내장 모듈인 argparse는 명령줄 인자를 파싱하기 위한 강력한 도구입니다. 이 모듈을 사용하면 명령줄에서 인자를 입력받고, 처리하는 과정을 효과적으로 구현할 수 있습니다.

argparse 모듈의 ArgumentParser 클래스는 명령줄 인자를 구문 분석하고 처리하기 위한 기능을 제공합니다. 이 클래스의 set_defaults() 메서드는 기본값을 설정하는 데에 사용됩니다.

set_defaults() 메서드의 기능

set_defaults() 메서드는 ArgumentParser 객체에 연결된 명령줄 인자에 기본값을 설정합니다. 이를 통해 인자가 지정되지 않았을 경우에도 기본값이 사용되도록 할 수 있습니다.

기본적인 사용법은 다음과 같습니다.

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
parser.set_defaults(verbose=False)

이 예제에서 verbose라는 명령줄 옵션은 기본적으로 False로 설정되어 있습니다. 따라서 --verbose 옵션을 주지 않으면 args.verbose의 값은 False로 설정됩니다.

예제

다음은 argparse 모듈의 set_defaults() 메서드를 사용하는 간단한 예제입니다. 이 예제는 --name 옵션을 통해 사용자 이름을 입력받고, --age 옵션을 통해 사용자의 나이를 입력받는 프로그램입니다.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, help='User name')
parser.add_argument('--age', type=int, help='User age')
parser.set_defaults(name='John Doe', age=30)

args = parser.parse_args()

print(f"Name: {args.name}")
print(f"Age: {args.age}")

위의 코드를 실행하면, --name--age 옵션을 주지 않았을 때에는 argparse 모듈에서 설정한 기본값이 출력됩니다.

$ python my_program.py
Name: John Doe
Age: 30

--name--age 옵션을 주면, 주어진 값이 출력됩니다.

$ python my_program.py --name "Alice" --age 25
Name: Alice
Age: 25

이와 같이 set_defaults() 메서드를 사용하여 명령줄 인자의 기본값을 설정하는 것은 입력된 인자가 없을 때에도 프로그램이 정상적으로 실행될 수 있도록 도와줍니다.

argparseset_defaults() 메서드를 적절히 활용하여 명령줄 인자를 처리하는 프로그램을 작성하면, 사용자와의 다양한 상호작용을 편리하게 구현할 수 있습니다.