SiLaure's Data

[Python] 14-1. Python 기초 문법 - Function 2(Implementation) (1) 본문

Records of/Learning

[Python] 14-1. Python 기초 문법 - Function 2(Implementation) (1)

data_soin 2021. 7. 22. 15:24

- 함수 정의의 다양한 형태 연습하기

1. 가장 흔하게 사용되는 경우 : 함수 parameter와 return이 모두 존재하는 경우

def add(a, b) :
    return a + b

def get_loss(model, matric) : 
    ...
    ...
    ...
    return model.predict(result, metric=[metric])

 

2. 함수 parameter는 없고 return이 존재하는 경우

  : parameter가 없어도 뻔한 일을 할 때

  e.g.

  csv 파일을 불러오는 함수 : 불러오는 data가 존재하기 때문에 지정된 파일만 가져오면 된다. 따라서 return만 있다.

def get_data() :
    data = pd.read_csv("test.csv")
    return data

 

3. 함수 parameter는 있는데 return이 없는 경우

   : 입력받은 데이터를 그대로 내보내거나, 어떤 데이터를 저장할 때(저장된 결과를 내보낼 필요가 없음)

def print_name(name) : 
    print(name)
    
def save_data(pate, data) :
    data.to_csv(path)

 

4. 함수 parameter도 없고 return도 없는 경우

  : 실행시키면 뻔한 결과가 나오는 함수의 경우 --단순동작-- 이거나,

   지정된 데이터를 지정된 장소에 (e.g.텍스트 파일) 저장할 때

def say_hi() :
    print("Hi!")
    
def save_txt() :
    with open("test.txt", 'w') as f :
        f.write(txt)
def 로 만든 함수를 user defined function이라고 한다.

 

 

 

 

Q. *특이한 케이스* 함수의 입력 parameter의 개수를 모를 때?

   --입력 parameter가 너무 많을 때

def add_many(*args):
   print(args, type(args))

add_many(1, 2, 3, 4)

출력 : (1, 2, 3, 4) <class 'tuple'>

A.  *(asterisk)를 앞에 붙이는 것으로 여러개의 parameter를 받아서 tuple로 변환하여 준다.   
def add_many(*args): 
    total = 0
    for num in args :
        total += num
    return total  # 위치 조심
    
add_many(1, 2, 3, 4)

출력 : 10

 

 

 

 

Q. 만약 parameter가 너무 많아서 몇 개만 입력 parameter로 넣고 싶을 때는 어떻게 할까?

A. 전부 의미가 있는 parameter인데 너무 많아서 다 외울 수도 없는 경우가 있다.
   이럴 땐 default parameter를 지정해놓고, 필요한 parameter만 입력받는다.
   이렇게 정의되는 함수의 parameter를 keyword parameter라고 한다.

e.g.

def default_add(a, b=10) :
    return a + b

default_add(5, 5), default_add(5, )

=> b의 parameter가 들어오지 않으면 자동으로 b의 값을 10으로 지정한다.

Comments