Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 함수를 정의하는 방법: 기본 문법부터 메서드 개념까지

함수(Function)란 무엇인가?

함수는 이름을 통해 호출되는 하나의 코드 블록입니다. 함수는 작업에 필요한 데이터를 전달받을 수 있으며(이를 매개변수라고 합니다), 필요에 따라 처리 결과를 되돌려줄 수도 있습니다(이를 반환값이라고 합니다). 함수에 전달되는 모든 데이터는 명시적으로 인자(argument) 형태로 넘겨져야 합니다.

함수 정의 기본 문법

Python에서 함수를 정의할 때는 def 키워드를 사용합니다. 기본 구조는 다음과 같습니다.

def function_name():
    # 실행할 코드

함수 정의는 def 키워드로 시작하며, 그 뒤에 공백을 두고 함수 이름을 적은 후 괄호와 콜론(:)으로 마무리합니다. 다음 줄에는 들여쓰기된 코드 블록이 위치하며, 이 부분에 함수가 실제로 수행할 작업을 작성합니다.

간단한 함수 예제

def greet():
    print("안녕하세요!")

greet()  # 출력: 안녕하세요!

매개변수와 반환값 활용하기

함수는 외부에서 데이터를 받아 처리하고 결과를 반환할 수 있습니다.

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

result = add(3, 5)  # result는 8

위 예제에서 ab는 매개변수이며, return 문을 통해 두 값의 합을 호출자에게 돌려줍니다.

메서드(Method)와 함수의 차이

메서드는 특정 객체와 연관되어 있는 함수를 의미합니다. 흥미로운 점은 Python에서 메서드가 클래스 인스턴스에만 국한되지 않는다는 사실입니다. 어떤 객체 타입이든 메서드를 가질 수 있습니다.

Python에서 모든 것은 객체이다

Python에서는 "모든 것이 객체"라는 철학이 적용됩니다. 함수 역시 예외가 아니며, 함수도 하나의 객체로 취급됩니다. 따라서 함수는 다른 객체들과 마찬가지로 속성(attribute)을 가질 수 있고, 새로운 속성을 동적으로 할당하거나 기존 속성 값을 조회하는 것도 가능합니다.

뿐만 아니라 함수 내부에 또 다른 함수를 정의하는 중첩 함수(nested function) 작성도 가능합니다. 이러한 유연성 덕분에 Python에서는 데코레이터(decorator), 클로저(closure) 같은 강력한 프로그래밍 기법을 활용할 수 있습니다.