TIL # 11 (function parameters)

Mikyung Lee·2021년 1월 13일
0
post-thumbnail

Assignment

1. 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 왜 안돼야만 하는가.

defalut value paremeter?
변수명을 같이 입력하지 않으면 기본적으로 non-default value parameter이고, my_name="제리" 이처럼 변수명을 같이 입력하면 defalut value parameter이다.

함수안에서 default value parameter를 non-default parameter보다 첫번 째로 정의해버리면 인터프리터가 인터프레터는 어떤 값이 어떤 argument와 매치 시켜야 하는지를 해석할 수 없게 된다.

2. 위치 인수(positional arguments)와 가변 인수(variable length arguments)의 위치를 참고 자료를 통해 조사해서 어떤에러 인지 확인하고 함수가 호출되도록 에러를 고치고 호출후에 출력되는 결과를 블로그에 정리해 주세요.

def func_param_with_var_args(name, age, *args):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)

func_param_with_var_args("정우성", "01012341234", "seoul", 20)

3. 가변 키워드 인수 (variable length keyword arguments)의 위치를 다음 참고 자료를 통해 조사해서 어떤에러 인지 확인하고 함수가 호출되도록 에러를 고치고 호출후에 출력되는 결과를 블로그에 정리해 주세요.

def func_param_with_kwargs(name, age, address=0, **kwargs):
    print("name=",end=""), print(name)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")

4. 위치 인수와 키워드 가변 키워드 인수 (variable length keyword arguments)의 위치를 다음 참고 자료를 통해 조사해서 어떤에러 인지 확인하고 함수가 호출되도록 에러를 고치고 호출후에 출력되는 결과를 블로그에 정리해 주세요.

def mixed_params(name="아이유", address, age, *args, **kwargs):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")

이 부분은 a, b, name="아이유", *args, **kwargs 이 순서로 바꿨는데도 계속 오류가 뜬다 😥 address에 multiple value가 있다는데 이해가 되지 않는다.

그래서 순서를 바꿔봤더니 성공! age를 가장 앞으로 가져와야 하나보다 😁

참고: args는 arguments의 줄임말이다. a라고 써도 되고, ajflkjaf라고 써도된다. 이는 여러개의 인자를 받기 위해 사용된다.

kwargs는 keyword argument의 줄임말로 키워드를 제공한다.
kwargs는 (키워드=특정값) 형태로 함수를 호출 할 수 있다.
그것은 딕셔너리 형태로 {'키워드':'특정 값'} 이렇게 함수 내부로 전달된다.

profile
front-end developer 🌷

0개의 댓글