Function arguments type과 순서

6708 단어 pythonpython

함수란?

  • 일정한 작업을 수행하는 코드블럭이다
  • 함수는 입력과 출력이 있는 아주 간단한 구조이다
  • 함수는 반복되어 사용되는 코드들을 정의하여 반복을 줄이고, 코드의 가독성을 높일 수 있다

파이썬 함수 문법과 실행

파이썬에서 함수는 def 키워드를 사용해서 정의하고, 문법은 다음과 같다

함수를 실행할 때는 function_name() 으로 실행하고
위와같이 function arguments 가 있을 경우에는 function arguments 를 괄호 안에 넣어주면 된다

input argument(input parameter)에 값이 들어간다 call by value 여기서 값은 객체의 값이 아니라 항상 객체 참조이다.

Function arguments type

  • default arguments` (기본 인수)
  • variable length positional arguments` (가변 인수)
  • keyword-only arguments` (키워드 인수)
    • non-default keyword-only arguments` (기본값이 없는 키워드 인수)
    • keyword-only arguments with defaults` (기본값이 있는 키워드 인수)
  • variable length keyword arguments` (가변 키워드 인수)
def arguments_type(age,name="아이유",*args,phone,address="seoul",**kwargs):
    print("age=",end=""), print(age)
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("phone=",end=""), print(phone)
    print("address=",end=""), print(address)
    print("kwargs=",end=""), print(kwargs)
# arguments_type(20,"정상수","male",24,phone="01051721024",address="seoul",money="none",hobby="lol")
arguments_type(20,"정상수","male",24,money="none",hobby="lol",address="seoul",phone="01051721024")

예시를 보며 설명하자면

  • default arguments는 age에 해당한다 → input parameter의 위치에 따라서 값이 들어간다.
  • variable length positional arguments는 “아이유"라는 값이 할당되어있는 name에 해당한다 → 위치에 따라 값이 들어지만, 값이 주어지지 않으면 기존 값이 들어간다
  • keyword-only arguments는 *args에 해당한다 → 값이 args에 튜플 형태로 들어간다
  • non-default keyword-only arguments는 phone에 해당한다 → 아래 parameter이름과 같은 input parameter가 있어야 한다 input parameter가 존재해야한다
  • keyword-only arguments with defaults는 “seoul”이라는 값이 할당되어있는 address에 해당한다 → 아래 parameter이름과 같은 input parameter가 있어야 한다 input parameter가 존재하지 않아도 된다
  • variable length keyword arguments는 **kwargs에 해당한다 → 값이 kwargs에 딕셔너리 형태로 들어간다

positional arguments vs non-default kewword-only arguments default arguments vs keyword-only arguments with defaults 보기에 똑같아 보이는데 무슨 차이가 있을까?

*args 의 위치가 중요하다 *args 위치 왼쪽에 있는 arguments 가 positional arguments 와 default arguments 이고, 오른쪽에 있는 arguments 가 non-default kewword-only arguments 와 keyword-only arguments with defaults 이다.

Function arguments 순서

좋은 웹페이지 즐겨찾기