1week 4day(Parameter)_TIL

miin·2021년 9월 2일
0

TIL

목록 보기
5/24
post-thumbnail

*arguments

  • 보통 *args로 사용된다 하지만 꼭 args로 쓰지 않아도 됨
  • 여러개의 인자를 함수로 받고자 할 때 사용, args[0]으로 접근 가능
  • tuple 형태로 출력된다
  • 순서대로 값을 전달
  • args는 파라미터의 맨 뒤에 위치해야함

**keyworded variable length of arguments

  • ** kwargs는 keyword argument의 줄임말
  • arguments의 수가 유동적으로 변할 수 있음
  • (키 = 값, 키 = 값) 형태로 함수를 호출할 수 있다
  • {'키':'값','키':'값'} 딕셔너리 형태로 함수 내부에 전달됨
  • 딕셔너리를 사용하듯이 사용하면 됨

장점

  • 가독성을 높여줍니다
  • API 함수는 모호성을 피하기 위해 중요한 매개변수를 키워드 전용 인수로 받아들일 수 있습니다.
  • 모든 인수를 키워드 전용 인수로 사용하여 함수를 만들 수 있습니다.
  • 키워드 전용 인수가 있는 함수는 함수가 많은 수의 인수를 취하는 경우 선택된 사용 사례 시나리오에서 유용합니다.

keyword arguments
디폴트값으로 전해짐, 순서상관 없음
def 함수명 (파라1, 파라2)
함수명(파라2=2,파라1=1)호출

mixing positional arguments and keyword arguments
순서를 맞추면서, 디폴트값을 동시에 줌
def 함수명 (파라1, 파라2)
함수명(2,파라1=1)호출

parameter default value
함수의 파라미터에 디폴트값을 직접 줄수 있다
def 함수명 (파라1, 파라2=2)
함수명(1)호출
주의할점: 디폴트값이 정의된 파라미터가 정의되지 않은 파라미터 보다 먼저 위치해 있으면 syntax error에러가 난다

*args 와 **kwargs 함께 사용하기

  • def a(*args, kwargs):
    실행문
    ...
    둘다 사용 하는 이유: **
  • 어떠한 형태와 수의 args도 허용 가능한 함수가 되기 때문
  • parameter에 있어 굉장히 유동적인 함수가 되는 것
  • 튜플과 딕셔너리를 함께 사용할 수 있다
  1. 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면
    기본이 아닌 키워드 전용 인수
    함수 정의에 기본값이 없는 키워드 전용 인수.
    함수가 기본이 아닌 키워드 전용 인수로 정의된 경우, 해당인수(키워드 포함)를 전달하여 함수를 호출해야 함
  • typeError가 난다
  1. 위치 인수(positional arguments)와 가변 인수(variable length arguments)
  • 잘못된 위치, type error 발생

  • 수정)

  • 출력)

  1. 가변 키워드 인수 (variable length keyword arguments)
  • 잘못된 위치, SyntaxError 발생
  • 수정)
  • 출력)
  1. 위치 인수와 키워드 가변 키워드 인수 (variable length keyword arguments)
  • 잘못된 위치, SyntaxError 에러발생
  • 수정)
  • 출력)
  • python 함수 정의, 인수 종류 및 순서

0개의 댓글