TIL 014 | Function Parameters & Arguments

This Is Empty.·2021년 9월 2일
0

TIL

목록 보기
14/23
post-thumbnail
post-custom-banner

Parameters / Arguments

Parameter는 함수가 받는 변수 즉, 매개변수라고 하고 Argument는 함수에 실제로 들어가는 input value로 인자라고 한다.

위 사진에서 name, age, skill매개변수이고 chetan, 33, python은 각 매개변수에 대응되는 인자이다.

위 사진처럼 순서에 맞춰 parameter값을 전해주는 방법은 positional arguments라고 한다.

def introduction(name, age, gender) :
	print(f"name: {name}, age: {age}, gender: {gender}")
    

introduction(name="John", age=13, gender="male")
# name: John, age: 13, gender: male

위와 같은 방법을 keyword arguments라고 한다.
사진속의 방법과 달리 순서가 바뀌어도 상관 없으며 가독성도 높아지는 장점이 있다.

두 방법을 섞어서 사용하는 것도 가능하다.

def introduction(name, age, gender) :
	print(f"name: {name}, age: {age}, gender: {gender}")
    

introduction("John", age=13, gender="male")
# name: John, age: 13, gender: male

parameter에 기본값을 정의할 수도 있다.
default값이 정의된 parameter는 값이 넘겨지지 않아도 괜찮으며 이때 자동으로 default값을 사용한다.
다만, default 값이 정의된 parameterdefault 값이 정의 되지 않은 parameter보다 먼저 위치해 있으면 syntax error가 난다.

def introduction(name, age, gender="male") :
	print(f"name: {name}, age: {age}, gender: {gender}")
    

introduction("John", age=13)
# name: John, age: 13, gender: male

함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유

parameter를 정의하는 순서 없이 무작위로 생성시 함수는 어떤 parameter에 어떤 값을 받아야할지 정할수 없기 때문이다

위치 인수(positional arguments)와 가변 인수(variable length arguments)의 위치

def example(a,b,c=None, r="w", d=[], *ae, **ab)

a,b : positional parameter
c = None : optional parameter
r = "w" : keyword parameter
d = [] : list parameter
*ae : keyword-only
**ab : var-keyword parameter

profile
Convinced myself, I seek not to convince.
post-custom-banner

0개의 댓글