파이썬 함수와 파라미터 순서 - TIL 2

2022. 1. 3. 20:44·TIL

함수와 파라미터 전달 방법과 순서에서 정리한 것처럼 파라미터는 종류에 따라 다음과 같이 순서가 존재합니다.

  1. Positional Arguments
  2. Positional Arguments with Default
  3. Variable Length Arguments
  4. Keyword Arguments
  5. Keyworld Arguetns with Default
  6. Variable Length Keyword Arguments

위코드 리플릿 28번 문제를 통해 이를 복습해보려고 합니다. 

 

1. postional arguments와 variable length arguments

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

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

위 함수에서는 *args가 age보다 먼저 나왔기 때문에 오류가 발생합니다. 다음과 같이 이를 수정할 수 있습니다.

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("정우성", 20, "01012341234", "seoul")

# name=정우성
# args=('01012341234', 'seoul')
# age=20

2. variable length keyword arguments와 keyword arguments

def func_param_with_kwargs(name, age, **kwargs, address=0):
    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")

위 함수에서는 variable length keyword argument와 keyworld argument의 위치를 수정해야 합니다.

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")

# name=정우성
# age=20
# kwargs={'mobile': '01012341234'}
# address=seoul


​3. 

def mixed_params(name="아이유", *args, age, **kwargs, address):
    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")

마지막 문제는 각 arguments의 위치를 모두 이해하고 있는지를 묻는 문제였습니다. 오류가 발생하는 코드를 다음과 같이 수정할 수 있습니다.

def mixed_params(age, name="아이유", *args, address, **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")

# name=정우성
# args=('01012341234', 'male')
# age=20
# kwargs={'mobile': '01012341234'}
# address=seoul

positional arguments를 먼저 정리하고, 다음으로 keyword arguments를 정리했습니다. 함수 파라미터 선언에 지정된 값은 positional arguments의 default 값이고, 파라미터에 값을 지정하고 함수의 파라미터로 전덜하는 것은 keyword arguments라는 점을 다시 한 번 정리할 수 있었습니다.

 

 

 

반응형

'TIL' 카테고리의 다른 글

파이썬 이메일, 비밀번호, URL 유효성 검사 정규 표현식 - TIL 6  (0) 2022.01.16
장고 db_table 이름 지정과 활용 방법 - TIL 5  (0) 2022.01.12
데이터 유형과 데이터베이스 종류 - TIL 4  (0) 2022.01.11
파이썬 리스트에서 홀수 제외하기 - TIL 3  (0) 2022.01.05
파이썬 중첩 if문 처리하기 - TIL 1  (0) 2021.12.30
'TIL' 카테고리의 다른 글
  • 장고 db_table 이름 지정과 활용 방법 - TIL 5
  • 데이터 유형과 데이터베이스 종류 - TIL 4
  • 파이썬 리스트에서 홀수 제외하기 - TIL 3
  • 파이썬 중첩 if문 처리하기 - TIL 1
휘 Hwi
휘 Hwi
개발자 성장 로그
  • 휘 Hwi
    개발자 로그: 변화를 위한 공간
    휘 Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • 101 (1)
      • Web | Internet (4)
      • HTML | CSS (4)
      • Python (9)
      • Django (20)
      • Javascript (0)
      • Node.js (0)
      • React (0)
      • React Native (0)
      • Database (1)
      • Git (1)
      • Terminal | Vim (1)
      • Auth | Security (4)
      • AWS (0)
      • Docker (0)
      • Kubernetest (1)
      • Deployment (1)
      • Project (2)
      • TIL (12)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TIL
    css
    장고 URL
    target="_blank"
    깃 ssh
    깃 오류
    HTTP
    새 탭에서 열기
    요소 상대 크기
    HTTP GET 요청
    HTTP POST 요청
    파라미터
    장고 프로젝트
    프로젝트 회고
    깃
    html
    파이썬
    요소 절대 크기
    함수
    깃 퍼블릭 키 등록
    장고
    탭내빙
    정규 표현식
    JWT
    깃 에러 해결
    JWT 인코딩
    요소 크기 설정
    배포
    JWT 디코딩
    장고 Views
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
휘 Hwi
파이썬 함수와 파라미터 순서 - TIL 2
상단으로

티스토리툴바