본문 바로가기

프로그래밍/Python

Python 한 걸음 내딛기 : Part 4 [함수-2]

 

Python 한 걸음 내딛기, 4번째 포스팅입니다.

일주일에 한개씩은 꼭! 지키려고 하다보니

이번에는 분량이 많지는 않습니다.

이번주 네전따 세미나가 있을 예정이라,

오늘 이외에는 올릴 수가 없을 듯 하여! ^^

짧게나마 이렇게 포스팅합니다.

다음 포스팅은 객체지향이 되지 않을까 싶습니다! ^^;

 

 


함수의 매개변수

- 함수를 호출할 때, 함수로 전달해주는 값으로 함수 처리 시에 필요한 내용을 적절하게 매개변수로 전달하여
사용할 수 있다.

- 파이썬에서는 '기본' , '키워드', '가변 리스트', '미정의 키워드' 에 대한 별도의 매개변수 전달 모드가
가능하며 각각의 사용법은 아래에서 알아보기로 한다.

   

기본 매개변수

- 함수 호출 시, 별도의 매개변수 값을 전달하지 않을 경우에 Default 값을 갖도록 함수 선언 시에 매개변수
별로 Default 값을 지정한 것이다.

- 이 경우에 함수를 별도의 매개변수를 전달하지 않으며, Default로 설정된 값으로 함수 내부에서 사용되며
만약 매개변수에 값을 전달할 경우에는 전달한 값으로 함수 내부에서 사용된다.

   

함수2 예제-1

함수2 예제-1 결과

def ParameterTest1(manager="네떡지기",vendor="cisco"):

        print(vendor,"장비 관리 : ",manager)

   

ParameterTest1()

ParameterTest1("고재성")

ParameterTest1("고재성","Arista")

cisco 장비 관리 : 네떡지기

cisco 장비 관리 : 고재성

Arista 장비 관리 : 고재성

   

   

   

키워드 매개변수    

- 함수 호출 시 전달되는 매개변수는 순서대로 함수의 선언 시에 순서와 동일하게 해당 값으로 매칭되어 전달
되지만, 이러한 순서와 상관없이 호출 시에 직접 매개변수의 키워드를 지정하여 전달할 수 있다.

   

함수2 예제-2

함수2 예제-2 결과

def ParameterTest2(manager,vendor):

       print(vendor,"장비 관리 : ",manager)

   

ParameterTest2(vendor="Fortinet",manager="고재성")

Fortinet 장비 관리 : 고재성

   

   

가변리스트 매개변수

- 함수 호출 시 전달되는 매개변수는 선언 시에 정의된 개수만큼만 전달을 할 수 있다.
하지만, 호출 시점마다 다른 개수의 매개변수를 전달해야 하는 경우가 있다. 이 경우에는 * 를 매개변수
앞에 써주게 되면 전달되는 매개변수를 튜플 형태로 전달을 받기 때문에 원하는 개수만큼 매개변수를
전달할 수 있게 된다.

함수2 예제-3

함수2 예제-3 결과

def ParameterTest3(manager, *vendors):

for ven in vendors:

       print("Manager-",manager,":", ven)

   

ParameterTest3("네떡지기","Cisco","Arista")

print("--------------------------")

ParameterTest3("고재성","DELL","HP","Juniper","Alteon")

Manager- 네떡지기 : Cisco

Manager- 네떡지기 : Arista

--------------------------

Manager- 고재성 : DELL

Manager- 고재성 : HP

Manager- 고재성 : Juniper

Manager- 고재성 : Alteon

 

함수2 예제-3 : Type확인

함수2 예제-3 :Type확인 결과

def ParameterTest3_Check(*vendors):

       print(type(vendors))

   

ParameterTest3_Check("Cisco","Arista")

<class 'tuple'>

   

   

미정의 키워드 매개변수

- 함수 호출 시 매개변수를 Data type중의 사전형식으로 매개변수를 전달하는 방법으로, 매개변수 앞에
** 를 써주게 되면 전달되는 매개변수를 사전형식으로 전달 할 수 있게 된다.

- 가변리스트 매개변수와 마찬가지로 원하는 개수를 전달할 수 있다.

   

함수2 예제-4

def ParameterTest4(cmd,**isps):

for isp in isps.keys():

       print("",isp,cmd,"Test")

       print(cmd,isps[isp])

   

ParameterTest4("ping",KT="168.126.63.1",LG="164.124.107.9",SK="210.220.163.82")

함수2 예제-4 결과

SK ping Test

ping 210.220.163.82

KT ping Test

ping 168.126.63.1

LG ping Test

ping 164.124.107.9