파이썬 함수와 파라미터 순서 - 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)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.