728x90

1) 파이썬 object에 대한 설명

 

먼저 파이썬 언어 자체가 '객체 지향 프로그래밍' 기반으로 만들어진 언어이다.

 

따라서 단순한 문자 및 숫자 변수 보두 객체로 만들어진다.

 

예를들어 'a'같은 경우 'str' class로 구성되어 만들어지는 객체이며,

'str' class가 가지는 attribute(상태) 나 method(행동, 함수)를 모두 활용할 수 있다.

 

마찬가지로 1과 같은 숫자 변수도 'int' class로 구성되고 이에 해당되는

attribute 나 method를 활용할 수 있다.

 

2) 파이썬 네임스페이스에 대한 설명

 

즉, 파이썬에서 우리가 선언하는 변수들은 모두 객체(object)이다.

따라서 하나의 변수를 선언할 때마다 그 변수명과 매칭되는 object가 존재한다.

 

이러한 namespace에서 각 obejct에 대한 매핑은 dictionary 형태의 자료형으로 구현된다.

 

파이썬에서의 namespace는 3가지로 분류된다.

  • 전역 네임스페이스: 모듈별로 존재하며, 모듈 전체에서 통용될 수 있는 이름들이 소속된다.
  • 지역 네임스페이스: 함수 및 메서드 별로 존재하며, 함수 내의 지역 변수들의 이름들이 소속된다.
  • 빌트인 네임스페이스: 기본 내장 함수 및 기본 예외들의 이름들이 소속된다. 파이썬으로 작성된 모든 코드 범위가 포함된다.

 

저장된 형태의 예 하나 보면 아래와 같다.

{'a': 10, 'outer_func': <function outer_func at 0x7f90c3ac5f28>, '__package__': None, '__file__': 'namespace_example01.py', '__spec__': None, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f90c3a8ec18>, '__doc__': None, '__cached__': None}

 

 

3. argparse

 

일단 argparse는 python code를 실행할 때 , command line에서 쉽게 인자(argument)를 받아서 실행할 수 있게 만들어 놓은 라이브러리이다. 기본 구성은 다음과 같다.

 

##main.py 

import argparse

#파서 만들기
parser = argparse.ArgumentParser(description='Argparse example')

#인자 추가하기
parser.add_argument('--learning_rate', '-lr', type=float, default=0.001, help='learning rate')
parser.add_argument('--mode', type=str, defualt='train', choices=['train', 'test'])
parser.add_argument('--no_gpu', action='store_true')
parser.add_argument('--epochs', type=int, required=True, help='number of epochs')

#내가 쓴 인자 저장
args = parser.parse_args()

#인자 사용
lr = args.lr

https://jayeon8282.tistory.com/6

 

Argparse, python 기반의 명령형 인터페이스 라이브러리

argparse란 프로그램에 필요한 인자를 사용자 친화적인 명령행 인터페이스로 쉽게 작성하도록 돕는 라이브러리 이다. 즉, command 창에서 프로그램 내의 인자를 조절하게끔 도와준다. 참고로 argparse

jayeon8282.tistory.com

 

 

4. vars()를 통한 args dictionary형태로 변환

 

이렇게 저장한 인자를 'vars()'를 이용해 dictionary형태로 변환하여 사용이 가능하다.

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> args = parser.parse_args(['--foo', 'BAR'])
>>> vars(args)
{'foo': 'BAR'}

 

 

 

 

728x90

+ Recent posts