프로그래밍 언어/파이썬

파이썬 24. 클래스-1

닉네임못짓는사람 2020. 11. 11. 18:04
반응형

이번 글에서부터는 클래스라는 것에 대해서 알아보도록 합시다.

 

클래스


일단 클래스가 과연 무엇인지 알아보도록 합시다.

클래스는 많은 사람들이 흔히 '설계도'라고 표현하곤 하는데, 실제 코드를 통해서 클래스가 무엇인지 차근차근 알아봅시다.

class TV():
class 클래스명():

일단 클래스를 만드는 방법은 아주 간단한데, 위와 같이 class라는 예약어 뒤에 클래스명을 적어주시기만 하면 됩니다.

이러면 우리는 일단 TV라는 클래스를 하나 만든것입니다.

 

그럼 이제 곰곰히 생각해봅시다. 우리가 사용하는 TV에는 과연 무엇이 필요할까요?

class TV():
    power = False

일단은 이 TV가 켜져있는지 꺼져있는지 판단하기 위한 값이 필요할 것입니다.

또한 TV를 처음 만들면 당연히 전원은 꺼져있기 때문에 기본값은 False가 되어야겠죠?

 

여기서 이 값을 저장하는 power라는 변수를 생성했는데, 이 변수를 클래스의 속성(클래스 변수)라고 이야기합니다.

이 속성(클래스 변수)은 해당 클래스에서 필요한 값들을 저장할 때 사용합니다.

 

이제 전원값을 저장하기 위한 변수를 만들었으니 다음은 전원을 켜고 끄는 방법을 마련해야겠죠?

class TV():
    power = False

    def powerChange(self):
        self.power = not self.power

위와 같이 TV의 전원을 지금의 반대로 만들어주는 기능(함수)를 구현했습니다.

함수에서 self라는 생소한 단어를 볼 수 있는데, 이에 대해서는 추후에 설명할테니 일단 넘어가시길 바랍니다.

 

그럼 이제 기본적으로 TV를 켜고 끌 수 있게 만들었으니 이 설계도를 사용해 실체를 만들어보도록 합시다.

class TV():
    power = False

    def powerChange(self):
        self.power = not self.power

t1 = TV()
객체명 = 클래스명()

여기서 다시 '객체'라는 새로운 단어가 등장했는데, 이는 클래스를 통해서 만들어진 실체를 이야기합니다.

이 객체를 다른말로는 'TV클래스의 인스턴스'라고도 이야기하는데, 의미자체는 둘 다 동일합니다.

실체를 독립적으로 이야기하면 '객체'가 되고, 클래스와 엮어서 이야기하면 '클래스의 인스턴스'가 되는것입니다.

 

클래스를 사용하면 객체를 몇개든 만들어낼 수 있으며, 모든 객체는 서로 독립적으로 사용됩니다.

class TV():
    power = False

    def powerChange(self):
        self.power = not self.power

t1 = TV()
t2 = TV()
print("t1의 전원 : {}, t2의 전원 : {}".format(t1.power, t2.power))
t1.powerChange()
print("t1의 전원 : {}, t2의 전원 : {}".format(t1.power, t2.power))

위와 같이 t1과 t2라는 객체를 생성하면 두 객체의 변수는 서로 독립적이며, 함수도 당연히 따로 실행됩니다.

처음 t1과 t2의 전원은 둘 다 기본값인 False였지만, t1객체에서 powerChange함수를 실행시키고 다시 둘의 값을

확인했더니 t1의 power만 True로 바뀐것을 볼 수 있습니다.

 

이렇게 일련의 과정을 통해서 보셧듯이 클래스는 특정한 속성(변수)과 기능(함수)을 미리 정해놓고,

이를 통해서 얼만든지 실체(객체)를 만들어낼 수 있는 설계도가 되는것입니다.

 

이번 글에서는 간단하게 클래스와 객체란 무엇인지, 이들을 어떻게 만드는지에 대해 알아봤습니다.

다음 글에서는 클래스에 대해서 좀 더 자세히 들어가서 알아보도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

파이썬 26. 상속  (0) 2020.11.17
파이썬 25. 클래스-2  (0) 2020.11.16
파이썬 23. 파일 입출력  (0) 2020.11.10
파이썬 22. 함수-2  (0) 2020.11.04
파이썬 21. 함수-1  (0) 2020.11.03