Python_Parameter

DonQ·2020년 12월 19일
0

TIL

목록 보기
8/31
post-thumbnail

1. Parameter Vs Argument

Parameter

Parameter : 함수가 받는 변수 (매개변수)

def multiply(num1, num2):
	return num1*num2

num1, num2가 multiply 함수의 Parameter

Argument

Argument : 함수에 실제로 들어가는 Input Value(인자)

multiply(3,6)

함수가 실제적으로 사용하는 값, 3과 6이 argument

2. Positional & Keyword Arguments

Positional Argument

def today(year, month, day):
	print(f"오늘은 {year}년 {month}월 {day}일 입니다.")

today(2020,12,19)

순서대로 자리에 의해 parameter가 받아진 것

Keyword Argument

def tomorrow(year, month, day):
	print(f"내일은 {year}년 {month}월 {day}일 입니다.")

tomorrow(day=20,year=2020, month=12)

parameter 이름으로 맞추어서 한것, 이 경우 순서가 바뀌어도 된다.

장점

  1. 개발한 프로그램의 안정성 상승
  2. 가독성 향상

Mixing positional arguments and keyword arguments

혼용하여 사용 가능.
다만, positional arguments -> keyword arguments 순서로 써야함.

Assignment

1. default value parameter를 non-default value parameter 앞에 정의하면 안되는 이유

default value parameter

  • 함수가 호출될때 파라미터에 인자를 받아 넘김

non-default value parameter

  • 함수가 호출될때 파라미터에 인자를 받아 넘겨줄 수 도 있고, 인자를 넘겨주지 않아도 keywordname-value 형식으로 선언하여 지정된 value를 넘겨줄 수 있음
def love_you(my_name = "정우성", your_name): 
    print(f"{my_name} loves {your_name}")
    
     File "<assignment>", line 1
SyntaxError: non-default argument follows default argument

오류 발생 이유

파이썬에서 파라미터를 받는 순서는 다음과 같으며 이 순서를 지키지 않으면 오류가 발생

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
꾸준히 쌓아가는 코딩 Study

0개의 댓글