본문 바로가기
PYTHON

파이썬 클래스와 객체[PYTHON개발]

by cellin 2023. 11. 1.

클래스(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)  # 인스턴스 변수에 접근
 

결과

야옹
솜이
야옹
냥이
 

 

 

 

 

 

 

 

 

 

 

 

 

 

사진: UnsplashCookie the Pom

728x90
반응형