# Python의 변수 호출/참조: Call by Objective Reference대충, call by reference(포인터)랑 비슷한데, 다만 함수안에 전달될 때에는 지역변수 tag가 붙기 때문에 레퍼런스가 사라진다. 또한 List와 같이 mutable한 정보를 담는 자료구조는 indexing을 할 경우 call by reference처럼 행동한다.http://devdoggo.netlify.com/post/python/python_objective_reference/

**## Python에서는 + 와 += 가 다르다.**a += b 는 inplace이지만, a = a+b 는 새로운 메모리를 할당한다.https://docs.python.org/3.2/library/operator.html#inplace-operators

import sys

print("This is the name of the script: ", sys.argv[0])

print("The arguments are: ", str(sys.argv))

# Python ArgumentParser

args.add_argument('--multi_label', type=int, choices=range(1,5), default=1, help='You can choose the number of tasks(labels). The task should be at least 1.') # 3 # number of labelshttps://docs.python.org/3/library/argparse.html#choiceshttps://stackoverflow.com/questions/25295487/python-argparse-value-range-help-message-appearance

## Argparse에 yes/no 옵션 추가하기

args.add_argument('--download', dest='download', action='store_true')
args.add_argument('--no-download', dest='download', action='store_false')
args.set_defaults(download=True)

https://stackoverflow.com/questions/15008758/parsing-boolean-values-with-argparse

## Argparse에서 여러가지 str input받기

args.add_argument('-no','--no-download', dest='download', action='store_false')

## Argparse에서 2개의 int 받기

parser.add_argument("--exp", type=int, nargs=2, default=None)

## Argparse에서 1개 이상의 string을 받아서 list에 저장하기

parser.add_argument("--run_modes", type=str, nargs="+", default=["train", "valid", "test"])

https://docs.python.org/2/library/argparse.html#nargs

## 주어진 args or namespace에 대해서 Argparsing하기

parser.parse_known_args(unknown_args)