7.1 함수 생성하기
Python에서 함수 생성은 코드가 더 모듈화되고 재사용 가능하며 가독성이 좋게 만드는 프로그래밍의 기본적인 측면이야. Python에서 함수는 def
키워드를 사용하여 정의되며, 그 뒤에 함수 이름과 매개변수를 가진 괄호가 와.
함수를 명령어의 집합으로 생각할 수 있는데, 이 명령어들을 그룹으로 묶고 그 그룹에 이름을 부여하는 거야. 함수 선언의 일반적인 형태는 다음과 같아:
def 이름(매개변수):
명령어1
명령어2
명령어N
Python에서 가장 간단한 함수는 다음과 같아:
def greet():
print("Hello, World!")
함수 호출은 괄호와 함께 함수 이름을 작성하는 것으로 이루어져:
greet() # 출력: Hello, World!
함수 호출은 그것의 내부 코드를 호출하는 위치에 작성하는 것과 같아. 똑같은 코드를 반복해서 작성하는 대신, 별도의 블록으로 묶고 이름을 부여할 수 있어.
7.2 함수에 인자 전달하기
함수가 항상 같은 일을 한다면 재미 없을 거야 — 그냥 이름만 붙인 명령어 블록이고 끝이지. 대신, 함수에는 매개변수라는 걸 생각해냈어 — 함수로 다양한 값을 전달할 수 있는 변수들 말이야.
함수 내부의 변수들은 함수의 매개변수라고 불려. 그리고 특정한 호출 시에 전달되는 값들은 함수의 인자야. 함수 매개변수는 단순히 인자의 값을 받아.
def greet(name):
print("Hello,", name)
greet("Alice") # 출력: Hello, Alice!
두 개의 인자를 가진 함수의 예:
def print_sum(a, b):
print(f"합계 {a}와 {b}는 {a + b}입니다")
print_sum(10, 15) # 출력: 합계 10와 15는 25입니다
물론 인자로는 전체 표현식을 전달할 수도 있어:
def print_sum(a, b):
print(f"합계 {a}와 {b}는 {a + b}입니다")
print_sum(10*10-123, 15//2) # 출력: 합계 -23와 7는 -16입니다
유용해! C/C++을 좋아하는 사람들에게 — 모든 변수는 Python에서 C++의 관점에서 참조야. 함수 매개변수도 그래. 할당할 때 값은 절대 복사되거나 중복되지 않아 — 항상 참조만 할당돼.
7.3 함수는 객체야
Python에서 함수는 일급 객체야, 즉 다른 객체처럼 사용할 수 있어. 이는 개발자들에게 유연한 소프트웨어 솔루션을 개발할 강력한 도구를 제공해.
객체로서의 함수
일급 객체로서, Python 함수는 다음과 같이 할 수 있어:
- 변수에 할당될 수 있어
- 다른 함수에 인자로 전달될 수 있어
- 다른 함수에서 반환될 수 있어
- 리스트, 딕셔너리와 같은 데이터 구조에 포함될 수 있어
예시:
def shout(text):
return text.upper()
yell = shout
def greet(func):
greeting = func("Hello") # 함수 호출
print(greeting)
greet(shout)
미래에 이 주제에 대해 더 다룰 것이지만, 일단 기억해 둬 — Python에서는 모든 것이 객체야. 함수, 클래스, 예외, 리스트, 모듈 — 뭐든지.
GO TO FULL VERSION