Python 도전기

[파이썬 입문] 클래스1

돌굴러가유피하세유 2022. 12. 9. 22:27
반응형

 

지두 공부하는 중이지만유 클래스 여서부턴 꽤 어렵다고 느껴지네유
앞으로 여러 책에서 접하면서 계속 볼테지만 일단 복습은 무조건 할꺼에유
이 허접한 글 보면서 맛보기하시거나 이해를 도울 수 있다면 좋겠네유

흔히 클래스(class)는 붕어빵 틀에 비유되곤 해유
그리고 클래스로 찍어내서 사용하는 클래스 내부의 함수(메서드;method)는 붕어빵에 비유해유
같은 기능을 하는 함수들이 각각 결과를 몇번이고 반환해도 서로 독립적으로 사용될 수 있기 때문이에유

근데 이렇게 들으면 무슨 멍소리인가 싶더라니까유
일단 구조부터 하나씩 차근차근 보도록 해유

class 클래스명:
    def __init__(self):
        self.클래스변수 = 초기값

    def 메서드명(인수1, 인수2, ...):
        수행할 문장1
        수행할 문장2
                ...

이런 구조를 가진게 클래스인데 그냥 함수 선언을 묶어놓은 덩어리라고 생각해도 무방해유
이때 클래스 내부의 변수를 클래스 변수, 클래스 내부의 함수는 메서드, 클래스로 만든 객체를 인스턴스라고 해유

클래스로 객체를 만드는건 변수에 대입하는 것과 같이 a = 클래스명() 로 표현돼유
이때 a가 해당 클래스의 인스턴스가 되는거쥬!!!
이어서 b = 클래스명()로 객체를 만들면 a와 b는 클래스 내부의 함수 기능은 공유하지만 전혀 독립적인 객체가 되는거에유!

이래서 클래스를 붕어빵 틀, 인스턴스(해당 클래스로 만든 객체)를 붕어빵으로 비유하는 거에유


이제 다음 글까지 해서 예시를 들면서 하나씩 뜯어먹어볼께유
클래스 변수는 각 인스턴스에서 전역변수처럼 쓰여유

더보기

>>> class A:
...     주식 = "삼성전자"
...

>>> a = A()
>>> b = A()
>>> A.주식
'삼성전자'
>>> a.주식
'삼성전자'
>>> b.주식
'삼성전자'

>>> A.주식 = "SK하이닉스" #클래스 변수를 바꾼다면?
>>> a.주식
'SK하이닉스'
>>> b.주식
'SK하이닉스'

>>> b. 주식 = "LG에너지솔루션" #인스턴스의 변수를 바꾼다면?
>>> A.주식
'SK하이닉스'
>>> a.주식
'SK하이닉스'
>>> b.주식 #별개의 변수로 동작, 원래대로 하려면 인스턴스를 재선언
'LG에너지솔루션'

 

메서드는 클래스 함수 정도로 볼 수 있어유

더보기

>>> class A: #클래스 선언
...     def setdata(self, x, y): #메서드 선언
...         self.x = x #인스턴스 self의 변수 x에 메서드 setdata의 인수 x 대입
...         self.y = y
...     def add(self): #메서드 선언
...         return self.x + self.y
...
>>> a= A()
>>> a.setdata(2,3) #인스턴스에서 메서드를 호출하므로 self 매개변수에 자동으로 객체 a 대입
>>> a.add()
5


한줄 한줄 보면 얼추 이해가 갈꺼라고 생각해유
헷갈리는건 self 부분일 것 같은데 self는 클래스를 구성할때 인스턴스를 나타낸다고 생각하시면 편해유
self로 정의돼있는게 아니라 다른 문자열을 사용해도 되지만, 국룰로 통용되니 굳이 비스듬히 살지 마세유

 

글이 길어지면 집중력이 떨어지니 여까지 하고 다음 글에 생성자부터 이어나갈께유

 

 

반응형