클래스(class)
함수뿐만 아니라 관련된 변수까지도 묶어서 관리하고 재사용할 수 있게 해주는 것
객체(object)
클래스(class)와 객체(object)는 붕어빵과 빵틀로 비유할 수 있음
붕어빵을 계속해서 찍어낼 수 있는 틀을 클래스(class), 붕어빵 틀에서 찍혀 나온 붕어빵 하나하나를 객체(object)
--> 하나의 클래스로부터 무수히 많은 객체를 생성 가능
클래스 선언하기
출처 입력
파이썬에서는 class 키워드를 사용하여 클래스를 선언
내부에서 def 키워드를 사용하여 메소드를 선언 가능
속성은 변수를 선언하는 일반적인 방법과 같은 방법으로 선언 가능
EXAMPLE
class Cat: # 클래스 선언
name = "meo" # 속성 선언
age = 2
species = "러시안블루"
def sound(self): # 메소드 선언
print(self.name + "가 야옹한다.")
my_cat = Cat() # 인스턴스 생성
print(my_cat.species) # 인스턴스의 속성 접근
my_cat.sound() # 인스턴스의 메소드 호출
Cat클래스는 name, age, species라는 3개의 속성과 bark()라는 하나의 메소드로 구성
결과
러시안블루
meo가 야옹한다.
초기화 메소드(initialize method)
파이썬에서 초기화 메소드의 이름은 __init__으로 고정
__init__ 메소드는 인스턴스가 생성되는 시점에서 자동으로 호출됨
EXAMPLE
class Cat: # 클래스 선언
def __init__(self, name):
self.name = name
def sound(self):
print(self.name + "가 야옹한다.")
my_cat = Cat("meo") # 인스턴스 생성
my_cat.sound() # 인스턴스의 메소드 호출
결과
meo가 야옹한다.
클래스 변수와 인스턴스 변수
클래스 변수(class variable)는 해당 클래스에서 생성된 모든 인스턴스가 값을 공유하는 변수
인스턴스 변수(instance variable)는 __init__() 메소드 내에서 선언된 변수로 인스턴스가 생성될 때마다 새로운 값이 할당되는 변수
class Cat: # 클래스 선언
sound = "야옹" # 클래스 변수 선언
def __init__(self, name):
self.name = name # 인스턴스 변수 선언
def sound2(self):
print(self.name + "가 야옹한다.")
my_cat = Cat("솜이") # 인스턴스 생성
your_cat = Cat("냥이") # 인스턴스 생성
print(my_cat.sound) # 클래스 변수에 접근
print(my_cat.name) # 인스턴스 변수에 접근
print(your_cat.sound) # 클래스 변수에 접근
print(your_cat.name) # 인스턴스 변수에 접근
결과
야옹
솜이
야옹
냥이
사진: Unsplash의Cookie the Pom
728x90
반응형
'PYTHON' 카테고리의 다른 글
Pandas-Dataframe, csv 파일 읽어오기[PYTHON개발] (0) | 2023.11.02 |
---|---|
PYTHON 클래스 상속[PYTHON개발] (1) | 2023.11.02 |
PYTHON 함수 선언[PYTHON개발] (1) | 2023.11.01 |
PYTHON 데이터구조-➂세트, 딕셔너리[PYTHON개발] (0) | 2023.11.01 |
PYTHON 데이터구조-➁튜플[PYTHON개발] (1) | 2023.11.01 |