당신의 친절한 이웃, 코딩맨

# 14 Python - Function Parameters(함수의 파라미터), optional parameter (옵셔널 파라미터) 본문

Today I Learn (TIL)

# 14 Python - Function Parameters(함수의 파라미터), optional parameter (옵셔널 파라미터)

이웃집 친구 2020. 6. 24. 17:30
반응형

1. 가장 먼저 함수는 output으로 리턴한다.

2. 1번은, 함수에서 항상 return 값이 있다는 말과 같다.

3. print 출력만하는 함수는 return값이 없는게 아닌, return을 none 하고 있는 것.

 


함수에서 Input 값 즉, 파라미터에 대해서...

 

Keyword Arguments

순서에 맞춰서 parameter 값을 전해 주지 않아도 되고, parameter를 지정할 수 잇는 방법들이 있다.

 

 

#기본적으로 사용되는 파라미터 전달 방식

def say_hello(name, age):
	print(f"{name}입니다. 나이는 {age}입니다.")

say_hello(박지성, 30)      #출력: 박지성입니다. 나이는 30입니다.


#Keyword Arguments (순서가 바뀌어도 상관X)

def say_hello(name, age):
	print(f"{name}입니다. 나이는 {age}입니다.")

say_hello(age = 30, name = "박지성")       #출력: 박지성입니다. 나이는 30입니다.

#Mixing positional arguments and keyword arguments (보통의 positional arguments와 keyword 혼합 사용 가능)

def say_hello(name, age):
	print(f"{name}입니다. 나이는 {age}입니다.")

say_hello("박지성", age = 30)       #출력: 박지성입니다. 나이는 30입니다.

 

※ Mixing positional arguments and keyword arguments 에서의 주의 사항

파라미터 순서를 꼭 지켜야 오류가 안나온다.

keyword arguments끼리 사용할때는 순서가 바뀌어도 괜찮지만, positional arguments가 입력 받으면,

positional arguments의 parameter가 keyword argument parameter보다 앞에 있어야 한다.

 

 

def say_hello(name, age = 30):
	print(f"{name}입니다. 나이는 {age}입니다.")
    
 say_hello(정우성)       #출력: 정우성입니다. 나이는 30입니다

 

위에 같이, 파라미터에 Default 값을 정의할 수 있다. 그 럴땐, 호출시에 별도로 파라미터 값을 input하지 않아도 됀다.

 

또한, default에 정의된 함수를 호출시에 새롭게 input을 넣을 수 있다.

 

 

순서를 꼭 지켜야 하는 이유

 

def myself(name, nationality = "한국", age):
    print("내 이름은 %s" % name)
    print("나이는 %d살" % age)
    print("국적은 %s" % nationality)

myself("박지성", 1)       # 1? nationality인가? age인가? 헷갈려 ㅠ_ㅠ;;


#이렇게 두번째 파라미터에 순서를 바꿔서 정의되어 있으면, 호출시에 어떤 파라미터를 넣어야 할지
#혼동이 오기 때문이다. (syntax오류발생)

 

Comments