파이썬/기본문법

파이썬 함수 (메소드) 사용하기

코데방 2024. 2. 16.
728x90

파이썬 함수 기본 구조

 

함수의 기본 구조는 간단합니다. 

다른 언어와 달리 타입 지정이 없어서 사용하긴 편리한데 복잡해지면 디버깅하기 더 어려워 보이긴 합니다. 

딱히 값을 리턴 하지 않고 특정 동작만 하도록 해도 무방합니다. 

 

# 파이썬 함수 기본 구조
def method(a, b): # a, b를 매개변수로 받는 함수 method
    return a + b # a + b 결과값을 리턴함

add = method(1, 2)
print(add)  # ==> 3

 

 

 

파이썬에서 매개변수(파라미터) 갯수 변할 수 있도록 함수 만들기

 

매개변수에 *을 붙여주면 가변인자를 사용할 수 있습니다. 

튜플 형식으로 만들어주기 때문에 반복문을 통해 쉽게 작업할 수 있습니다. 

 

def sum_all(*args):
    print(type(args)) # args 타입 확인 ==> 튜플
    for i in args:
        print(i)
        
    a = 0
    for i in args:
        a += i # args에 있는 숫자 모두 합치기
        
    return a # a값 반환

sum = sum_all(1,2,3,4,5)
print(sum)

 

 

 

 

 

아래와 같이 일반 매개변수와 섞어서 사용할 수 있습니다.

 

 

def calulator(kind, *args):

    if kind == "sum":  # kind가 "sum"이라면
        result = 0
        for i in args:  # 모든 숫자를 더해줌
            result += i

    elif kind == "multiple":  # kind가 "multiple" 이라면
        result = 1
        for i in args:  # 모든 숫자를 곱해줌
            result *= i

    return result  # 결과값 리턴


print(calulator("sum", 1, 2, 3, 4, 5))  # ==> 15
print(calulator("multiple", 1, 2, 3, 4, 5))  # ==> 120

 

 

 

 

 

리턴에 여러 값을 사용하면 튜플 타입으로 리턴됩니다.

다만 [ ]로 리스트라고 표시해주면 리스트 타입으로 리턴시킬 수 있습니다. 

물론 굳이 이렇게 사용할 일은 없어보입니다. 그냥 객체 인스턴스를 만들어서 깔끔하게 던져줍시다.

 

def tup(a,b):
    sum = a + b
    multiple = a * b
    
    return sum, multiple #리턴값에 여러개 주기

num = tup(4,5)
print(type(num), num)

 

 

 

 

 

파이썬 함수에서 디폴트값 설정하기

 

간단합니다. 다만 디폴트값이 설정된 매개변수는 가장 뒤에 넣어줘야 합니다. 

 

def hi (who, say, love = "사랑해"):
    str = f"{who}야 {say}. {love}~~"
    
    return str

say_hi1 = hi("혜정", "안녕", "잘가") # 매개변수 3개 다 넣기
say_hi2 = hi("혜정", "안녕") # 마지막 매개변수 안 넣기

print(say_hi1)
print(say_hi2)

 

 

 

 

 

끝으로 함수 내부에서 생성되는 모든 변수는 지역변수로 함수가 종료되면 사라집니다.

함수에서 항상 리턴값으로 값을 외부 변수로 전달해주는 이유입니다. 

전역변수 "global"을 사용해 외부의 변수를 조작할 수 있긴 하지만 권장하는 방식은 아닙니다. 

 

a = 1
def glo():
    a = 2 # 지역변수로 바깥의 a와는 다른 변수
    
glo() # 함수 실행
print(a) # a 변수 값 => 1로 동일

 

a = 1
def glo():
    global a # 전역변수 사용 설정
    a = 2
    
glo() # 함수 실행
print(a) # a 변수 값 => 2로 변경

 

728x90

댓글

💲 추천 글