python으로 개발하다가 외부라이브러리를 쓰다보면 많이 보는 글자가 바로 *args 또는 **kwargs 다.
한마디로 말해서 어떤 값을 넣을진 모르는데 *args는 값을 넣으면 함수에 변수가 튜플형태로 입력되는 것이고, **kwargs는 딕셔너리 형태로 입력되는 것이라고 보면 된다.
*var, **vars 로 사용해도 됨.
# 키워드되지 않은 가변
def aaa(*args):
print args
aaa(1,2,3,4,)
==> (1,2,3,4)
# 이름이 지정된 인자
def bbb(**kwargs):
print kwargs
bbb( a=1, b=2, c=3)
==>{ a:1, b:2, c:3}
실제 예시
values = {
'basic_meta_json' : json_loaded,
'scene_name' : scene_name,
'filename' : file_name,
'satellite_name' : satellite_name,
'utc' : utc,
'local_time' : localtime,
}
session.add(scenes(**values))