파이썬 심화: 함수와 객체지향 프로그래밍(OOP)
|
2 min read
단순한 스크립트를 넘어 복잡한 애플리케이션을 만들기 위해서는 함수와 클래스에 대한 깊은 이해가 필수적입니다. 파이썬의 객체지향적인 특성을 활용하여 더 효율적이고 확장성 있는 코드를 짜는 방법을 정리했습니다.
1. 함수의 깊은 활용
함수는 단순히 입력과 출력을 정의하는 것을 넘어, 다양한 방식으로 활용될 수 있습니다.
- **가변 파라미터 (*args, kwargs): 아규먼트의 개수가 정해지지 않았을 때 사용합니다.
- 람다 함수 (Lambda): 한 줄짜리 일회용 함수를 만들 때 유용하며, ,text
map등과 자주 쓰입니다.textfilter - 데코레이터 (Decorator): 심볼을 사용하여 기존 함수의 코드를 수정하지 않고도 앞뒤로 새로운 기능을 추가(로깅, 실행 시간 측정 등)할 수 있는 강력한 기능입니다.text
@
2. 객체지향 프로그래밍 (OOP)의 시작: 클래스
클래스는 객체를 만들기 위한 설계도입니다.
- 생성자 (): 객체가 생성될 때 자동으로 호출되며, 초기 속성을 설정합니다.text
__init__ - self의 의미: 인스턴스 자신을 가리키며, 메소드 내에서 인스턴스의 속성에 접근할 때 반드시 사용해야 합니다.
3. 상속 (Inheritance)과 오버라이딩 (Overriding)
부모 클래스의 기능을 자식 클래스가 그대로 물려받거나 수정하는 기능입니다.
- 상속: 형태로 정의하며 부모의 모든 메소드를 사용할 수 있습니다.text
class Child(Parent): - 오버라이딩: 부모의 메소드를 자식 클래스에서 입맛에 맞게 재정의하는 것입니다.
- super(): 자식 클래스에서 부모 클래스의 메소드(특히 생성자)를 호출하고 싶을 때 사용합니다.
4. 접근 지정자 (Public vs Private)
파이썬은 엄격한 접근 제한은 없지만, 관례적으로 언더바 두 개(
text
__함수와 클래스를 제대로 이해하면 파이썬이 왜 '객체지향 언어'인지 비로소 깨닫게 됩니다. 처음에는
text
selftext
super()