CodeGym /행동 /Python SELF KO /값 반환하기

값 반환하기

Python SELF KO
레벨 6 , 레슨 2
사용 가능

8.1 return

Python에서 return 문은 함수에서 아주 중요한 역할을 해. 이걸로 함수가 값을 반환할 수 있거든. 이걸 잘 이해하면 소프트웨어 개발을 더 효율적으로 할 수 있어.

return 문은 함수 실행을 끝내고 그 결과를 호출 코드에 "돌려줘". 함수가 결과를 내서 그 결과가 계속 사용돼야 할 때 return을 써.

값 반환하기

함수는 숫자, 문자열, 객체, 심지어 다른 함수나 None까지 모든 데이터 타입을 반환할 수 있어. 예를 볼까:


def sum(a, b):
    return a + b
        
result = sum(5, 3)
print(result)  # 출력 8

덧셈 결과 a + b는 변수 result에 할당될 수 있어.

다중 값 반환하기

Python은 튜플을 사용해서 함수에서 여러 값을 반환하는 것도 가능해:


def get_user():
    name = "이반"
    age = 25
    return name, age
        
user_name, user_age = get_user()
print(user_name, user_age)  # 출력 이반 25

함수 종료를 위한 return 사용하기

return 문은 함수 내에서 즉시 종료하기 위해서도 사용할 수 있어. 이건 함수 내부에 있는 루프나 조건문에도 적용돼:


def check_password(pswd):
    if len(pswd) < 8:
        return "너무 짧은 비밀번호야"
    return "비밀번호가 수락됐어"

return 없이 쓰기

return이 값 없이 사용되거나 생략되면, 함수는 None을 반환해:


def print_message(text):
    print(text)
    return
        
result = print_message("안녕")
print(result)  # 출력 None

return 문은 Python에서 엄청 강력한 도구야. 프로그램의 흐름 제어를 유연하게 해줘. 이걸로 함수가 단지 값을 반환할 뿐만 아니라 실행 로직을 제어할 수 있어서 코드가 더 깔끔하고 이해하기 쉬워져.

8.2 pass

Python에는 pass라는 특별한 문이 있어, 이건 아무것도 하지 않아. pass 문은 코드 블록 안에 내용이 필요하지만 아직 기능적으로 정의되지 않은 곳에 사용돼 (어떤 코드가 필요하긴 한데 아직 생각이 안 날 때).

이건 특히 큰 프로젝트에서 유용한데, 그냥 프로그램 구조를 잡아놓고 아무것도 수행하지 않게 하고 싶을 때 좋거든. pass 사용 예제를 보자.

함수 정의에서:


def my_function():
    pass

여기서 pass는 아직 구현이 없는 함수를 정의하는 데 사용돼.

루프와 조건문에서:


for item in my_list:
    pass

루프를 만들어야 하지만 그 안에서 아무 작업도 할 필요가 없을 때.

클래스에서:

메서드나 속성 없이 클래스를 정의해서 향후 사용을 위한 클래스 이름과 구조를 예약해 놓을 때.

pass 문은 프로그램의 구조가 명확하지만 각각의 컴포넌트의 구현 세부사항이 아직 결정되지 않았을 때 개발과 테스트에서 자주 사용돼. 이걸로 프로그래머는 코드 구조를 정리하고 기능을 점진적으로 추가할 수 있어서 애플리케이션을 전체적으로 중단하지 않고 작업할 수 있어.

8.3 함수 반환하기

Python에서 함수가 다른 함수를 반환할 수 있는 기능은 아주 강력한 도구야. 이건 클로저*와 일급 함수 지원 덕분이야. 이 언어의 특징 덕에 데코레이터*펑션 팩토리* 같은 개념을 사용해서 유연하고 표현력 있는 프로그램을 개발할 수 있어.

Python에서 함수는 객체라서, 변수에 할당될 수 있고, 다른 함수에 인수로 전달되거나 반환될 수도 있어. 이 기능 덕에 함수는 모듈화된 코드와 쉽게 테스트 가능한 코드를 만드는 데 아주 강력한 도구가 돼.

예를 들어, 제곱과 세제곱 등을 할 수 있는 함수를 생성하는 함수를 만들어 보자. 이런 코드야:


def power(exponent):
    def inner(base):
        return base ** exponent
    return inner
        
square = power(2)
print(square(3))  # 출력 9
        
cube = power(3)
print(cube(3))  # 출력 27

여기서 주목할 점은 — power 함수가 inner 함수를 호출하지 않는다는 거야. 대신에, 함수 power 안에서 inner 함수를 base 매개변수로 선언해. 그런데 inner 함수는 단순히 선언되는 게 아니라, 내부에서 exponent 매개변수를 사용하지.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION