[Python] 파이썬의 함수 def, 클래스 class 상속에 대하여
2025. 3. 17. 19:34ㆍPython 파이썬
반응형
1. 함수와 def 키워드
- 함수란?
- 반복되는 작업이나 특정 기능을 하나의 코드 블록으로 묶어 놓은 것입니다.
- def 키워드
- def를 사용해 함수를 정의합니다.
def greet(name):
return f"안녕하세요, {name}님!"
print(greet("홍길동")) # 출력: 안녕하세요, 홍길동님!
2. 클래스와 class 키워드
- 클래스란?
- 객체(인스턴스)를 만들기 위한 설계도입니다.
- 클래스 안에는 변수(속성)와 함수(메서드)가 들어갑니다.
- class 키워드
- class를 사용해 클래스를 정의합니다.
class Person:
def __init__(self, name, age):
self.name = name # 인스턴스 변수
self.age = age
def introduce(self):
print(f"안녕하세요, 제 이름은 {self.name}이고, {self.age}살입니다.")
p = Person("홍길동", 30)
p.introduce() # 출력: 안녕하세요, 제 이름은 홍길동이고, 30살입니다.
3. 생성자: init (그리고 new)
- init 메서드
- 객체가 생성된 후 호출되어 초기값(속성)을 설정합니다.
- 예를 들어, 위의 Person 클래스에서 name과 age를 설정하는 역할을 합니다.
- new 메서드
- 객체를 실제로 생성하는 역할을 하며, 특별한 경우에만 직접 오버라이드합니다.
4. self
- self란?
- 클래스의 인스턴스 자신을 나타내는 변수입니다.
- 메서드를 호출할 때 자동으로 인스턴스를 첫 번째 매개변수로 전달합니다.
- 주의 사항
- 관례상 self를 사용하지만, 다른 이름을 사용해도 작동합니다.
- 단, 대부분의 파이썬 코드에서는 self를 사용합니다.
5. 클래스 상속(Inheritance)
- 상속이란?
- 한 클래스(자식 클래스)가 다른 클래스(부모 클래스)의 속성과 메서드를 물려받는 것입니다.
- 사용 방법
- 클래스 선언 시 괄호 안에 부모 클래스 이름을 적습니다.
class Animal:
def sound(self):
print("동물이 소리를 냅니다.")
class Dog(Animal):
def sound(self): # 부모의 sound 메서드를 재정의(오버라이딩)
print("멍멍!")
dog = Dog()
dog.sound() # 출력: 멍멍!
- 다중 상속도 가능
- 여러 부모 클래스로부터 동시에 상속받을 수 있습니다.
6. name 변수
- __name__의 역할
- 모듈(파이썬 파일)의 이름을 나타내며, 코드가 직접 실행되었는지 혹은 임포트되었는지를 구분합니다.
if __name__ == "__main__":
# 이 코드는 파일이 직접 실행될 때만 실행.
print("직접 실행되었습니다!")
7. 파이썬 객체 구조
- 파이썬에서는 숫자, 문자열, 리스트, 함수, 클래스 등 모든 것이 객체입니다.
- 객체의 구성 요소
- class: 객체가 어떤 클래스의 인스턴스인지 나타냅니다.예: print(10.__class__) # <class 'int'>
- dict: 객체가 가진 속성들이 저장된 딕셔너리입니다.
- slots: 객체가 가질 수 있는 속성을 제한해 메모리 사용을 줄일 수 있습니다.
- 메서드 바인딩
- 클래스 내부의 함수는 호출 시 자동으로 인스턴스(self)와 연결됩니다.
반응형
'Python 파이썬' 카테고리의 다른 글
[Python] 파이썬 라이브러리 pandas 기본 개념, 함수 및 메소드 정리 (0) | 2025.03.02 |
---|---|
[Python] 파이썬 기초 정리-2 | 기본 연산자 (산술 연산자, 비교 연산자, 논리 연산자, 할당 연산자) | 파이썬 기본 문법 (0) | 2024.05.16 |
[Python] 파이썬 기초 정리-1 | 변수, 데이터 타입 (자료형), 형변환 | 파이썬 기초 문법 (0) | 2024.05.16 |