본문 바로가기

컴퓨터 프로그래밍/Django

[Django] 기본중의 기본 python, Django를 들어가기 전에 알아야 될 것들

반응형

장고를 시작하기 앞서 python 자주 사용하는 자료형과 함수형태에 대해서 알아보도록 하겠습니다. 

매번 args, kwargs가 해깔렸었잖아요

 

먼저 자료형에 대해서 정리해보겠습니다. 

딕셔너리란?

{Key1: Value1, Key2: Value2, Key3: Value3, ...}

 

먼저 딕셔너리는 중괄호로 둘러쌓여 있습니다. 

그리고 key 와 value값을 쌍으로 이루어져 있습니다. 

이 딕셔너리 타입은 json 형태와 동일하며, 

serializer를 사용할때 자주 보실 형태입니다. 

key값을 통해 value값을 찾을 수 있습니다. 

 

리스트란?

리스트명 = [요소1, 요소2, 요소3, ...]

리스트는 우리가 흔히 알고 있는 배열과 같은 형태에요.

단순히 요소들을 넣을수 있는 자료형입니다. 

간단하게 순서대로 꺼내서 사용할 수도 있습니다. 

 

다음은 함수에서 args와 kwargs에 대해서 알아보도록 하겠습니다. 

 

일단 python 에서 함수의 형태를 다음과 같습니다. 

def test(num1, num2, *args, **kwargs):
	print(args)
    print(kwargs)

기본 함수 형태죠.

잘 안보이시는 분들을 위해 

def 뒤 함수명을 쓰고, 괄호를 통해 함수인자들을 받습니다. 

이 함수인자들은 num1, num2 와 같이 받는것도 가능하지만..

*args, **kwargs형태로 받을수도 있답니다. 

여기서 args, kwargs는 어떤걸 의미할까요?

args(arguments)

  • 함수에서 정해진 인자 값 이상의 값을 필요로 할 때마다 함수 식을 수정해 주는 것은 불편함
  • 명시할 변수 이외의 것을 args로 자유롭게 모두 받을 수 있음

 

kwargs(keyword arguements)

  • args에 키워드가 붙음
  • 딕셔너리 형태로 들어감

 

이렇게 정의할수 있습니다. 

매번 num1, num2, .... num100 ... num100이렇게 함수 인자를 지정할 수 없습니다. 

그럴때 쓰이는게 *args입니다. 

 

다시 예시를 들면 Test(1,2,3,4,5,6,7,8) 이라고 입력해볼께요

> test(1,2,3,4,5,6,7,8)
(3, 4, 5, 6, 7, 8)

그럼 다음과 같이 출력됩니다. 

처음 1, 2의 경우는 지정한 인자인 num1, num2에 들어가게 되고 나머지 인자들은 args에 들어가게 됩니다. 

 

그러면 kwargs는 무엇일까요? 

예시를 들어서 Test(1,2,3,4,5, num3=4, num6=8) 이렇게 입력해볼께요 

>>> test(1,2,3,4,5, num3=4, num6=8)
(3, 4, 5)
{'num3': 4, 'num6': 8}

보면 나머지 자료형들이 kwargs로 들어가는 것을 확인할 수 있습니다. 

keyword args의 약자로 "num3": 4 >> 우리가 위에서 배웠던 딕셔너리 형태인것을 확인할 수 있습니다. 

 

해깔릴만한것을 알아보았어요. 

저도 개념이 해깔릴땐 다시 제 포스팅 봐야겠습니다. 하하

그럼 다음번에도 제가 해깔리는 것 위주로 포스팅 작성해보도록 하겠습니다. 

 

 

반응형