jm_p_op

**kwargs, funtion(input) 본문

py

**kwargs, funtion(input)

jm_p_op 2023. 11. 13. 18:37

https://www.youtube.com/watch?v=eUEmOHrHga8

내용을 읽어보는 도중 문득 들은 생각 input값에서 a,b,c,d값이 딕셔너리의 순서대로 나오는것 아닐까란 생각에 테스트를 진행한다.

def fun1(a,c,b,d):
    print(a,b,c,d)

test={"c":3,"a":1,"b":2,"d":4}

fun1(test)
funt1(c=3,a=1,b=2,d=4)
#1 2 3 4
#1 2 3 4

순서에 상관없이 값을 지정해준다.


fun1(1,2,3,b=4)

fun1을 정의할때 a,c,b,d순으로 정의가 된다.

즉 a=1, c=2, b=3 ,b=4 가 됨으로 다음과 같은 에러가 뜬다

Traceback (most recent call last):
  File "c:\Users\jakep\Desktop\sparta\py\kwargs_test.py", line 7, in <module>
    fun1(1,2,3,b=4)
TypeError: fun1() got multiple values for argument 'b'

fun1(a=1,2,3,4)

초반에 a=1로 인풋값으로 들어가면서 뒤에 2,3,4값도 해당 키값을 설정해줘야 함으로 다음과 같은 에러가 뜬다. 

  File "c:\Users\jakep\Desktop\sparta\py\kwargs_test.py", line 7
    fun1(a=1,2,3,4)
                  ^
SyntaxError: positional argument follows keyword argument

함수에서 인자값을 설정해둔다면 함수를 쓸때 input값이 없을시 그 값으로 돌게 된다.

def fun1(a,c,b,d=5):
    print(a,b,c,d)

test={"c":3,"a":1,"b":2,"d":4}

fun1(**test)
fun1(1,2,3)

##1 2 3 4
##1 3 2 5

'py' 카테고리의 다른 글

py실험실-list 만드는 속도 측정(그래프)  (1) 2023.12.21
.py SpeechRecognition 3.10.0 import에러  (0) 2023.05.23
.py 실험실 공간할당(list붙이기)  (0) 2023.05.06
.py dictionary , sorted  (0) 2023.04.21
.py Truthy&Falsy (if type)  (0) 2023.04.05