클래스 (class)
클래스는 객체 지향 프로그래밍에서 객체를 정의하는 틀이다. 클래스는 데이터(멤버변수)와 함수(메소드)를 포함할 수 있다. 클래스는 여러 객체를 생성할 수 있는 청사진 역할을 한다.
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print(f"Hello, my name is {self.name}")
생성자
생성자는 클래스의 인스턴스가 생성될 때 호출되는 함수이다. 객체의 초기 상태를 정의하는 데 사용된다.
class Person:
def __init__(self, name):
self.name = name # 초기화할 때 전달받은 값을 멤버 변수에 저장
멤버변수
멤버변수는 클래스 내부에서 선언된 변수로, 각 객체마다 고유한 값을 가질 수 있다. self
키워드를 통해 참조된다.
class Person:
def __init__(self, name, age):
self.name = name # 멤버변수
self.age = age # 멤버변수
메소드
메소드는 클래스 내부에 정의된 함수로, 객체의 동작을 정의한다. 메소드는 첫 번째 인수로 항상 self
를 받는다.
class Person:
def greet(self):
print(f"Hello, my name is {self.name}")
self
self는 메소드 내에서 인스턴스 자신을 참조하는 변수이다. 이를 통해 인스턴스의 멤버변수와 메소드에 접근할 수 있다.
class Person:
def greet(self):
print(f"Hello, my name is {self.name}") # self로 객체 자신의 변수에 접근
상속
상속은 기존 클래스를 확장하여 새로운 클래스를 만드는 것이다. 자식 클래스는 부모 클래스의 속성과 메소드를 물려받는다.
class Animal:
def sound(self):
print("Some sound")
class Dog(Animal):
def bark(self):
print("Woof!")
super
super는 부모 클래스의 메소드를 자식 클래스에서 호출할 때 사용된다.
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name) # 부모 클래스의 생성자 호출
self.breed = breed
다중상속
파이썬에서는 한 클래스가 여러 부모 클래스로부터 상속을 받을 수 있다.
class A:
def method_a(self):
print("A")
class B:
def method_b(self):
print("B")
class C(A, B): # 다중상속
pass
메소드 오버라이딩
메소드 오버라이딩은 자식 클래스에서 부모 클래스의 메소드를 재정의하는 것이다.
class Animal:
def sound(self):
print("Some sound")
class Dog(Animal):
def sound(self): # 부모 클래스의 sound 메소드를 오버라이딩
print("Woof!")
pass
pass는 아무 동작도 하지 않는 코드 블록을 정의할 때 사용된다. 주로 빈 클래스를 정의할 때 쓰인다.
즉, 나중에 할테니깐 내버려 둬. 라는 의미이다
class EmptyClass:
pass
예외처리
파이썬에서 예외가 발생했을 때 프로그램이 중단되지 않고 적절하게 처리되도록 try-except
문을 사용한다.
try:
x = int(input("숫자를 입력하세요: "))
print(10 / x)
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except ValueError:
print("유효한 숫자를 입력하세요.")
에러
에러는 프로그램 실행 중 발생할 수 있는 문제 상황이다. 파이썬에는 ValueError
, TypeError
, ZeroDivisionError
등의 다양한 에러가 있다. 이러한 에러를 적절히 처리해야 한다.
모듈
모듈은 파이썬 파일 하나로, 변수, 함수, 클래스를 포함할 수 있다. 다른 파일에서 모듈을 import하여 사용할 수 있다.
# my_module.py
def greet():
print("Hello")
# main.py
import my_module
my_module.greet()
패키지
패키지는 모듈들을 디렉터리 형태로 묶은 것이다. 여러 모듈을 구조적으로 관리할 수 있게 해준다. 패키지 내에는 __init__.py
파일이 있어야 한다.
# my_package/__init__.py
# my_package/module.py
# main.py
from my_package import module
module.some_function()
'문법관련 > python' 카테고리의 다른 글
파이썬 중급 문법 (함수~with) (0) | 2024.09.13 |
---|---|
파이썬 초급 문법2 (if~리스트 컴프리핸션) (0) | 2024.09.13 |
파이썬 초급 문법 (슬라이싱~ 자료형 변환) (1) | 2024.09.13 |
파이썬 기초 문법 (자료형 ~ 불리안) (0) | 2024.09.13 |