IT/프로그래밍

[파이썬] 파이썬 클래스 [패스트 캠퍼스 챌린지 12일차]

뜻밖의 행복 2022. 2. 4. 20:35
반응형

안녕하세요? 뜻밖의 행운입니다.

 

오늘은 파이썬 12일차 입니다. 

11일차에 이어서 조금은 지루하네요 ㅎ

저는 문제 푸는게 더 재미있습니다. 

 

계속해서 이론이네요 오늘 나온 클래스는 객체지향 관련 책을 한번 더 읽어 보면 좋을듯 합니다. 

하나의 강의에서 한번에 습득하기에는 제약이 있는듯 하네요 

 

시중에 객체지향에 관련된 책이 많은데 어떤 책이 좋을지는 한번 서점 나들이를 가봐야겠습니다.

 

 

지겹다고 그냥 대충 넘기면 나중에 힘들어 지는 개념

클래스 연습문제 풀면서 반복하다 보면 또 완전히 제것으로 만들 수 있을듯 하네요 

힘내서 합시다. 

내것으로 만들어

은 무궁무진하게 만들어가야지

 

클래스 가 무엇이냐? 왜 알아야하고 어디에 쓰일까요?

클래스는 객체를 표현하기 위한 문법이라고 합니다.

객체를 표현하려고 하는 이유는 현실 세계의 복잡하고 귀찮은 문제를 해결하기 위하여 

프로그래밍을 하는데 그 복잡한 문제를 잘게 나누어 각각 객체로 만들어 버리고 

그 객체를 이용하고 이리저리 조합하여 문제를 해결하기 위함입니다. 

클래스 안에는 속성과, 메서드라는 것이 있는데 

 

보통 클래스 예제를 보면 게임 캐릭터 예제를 많이 듭니다. 

게임 캐릭터라는 클래스가 있으면

게임 캐릭터의 이름, 체력, 공격력, 이동력 등등을 속성이라고 하고 

그 게임캐릭터가 하는 행동 마법 공격, 달리기을 메서드라고 보시면 됩니다.

 

 

 
 
 

 

사실 이렇게 설명만 들어서는 쉽사리 이해가 되지 않고 역시나 예제를 보면서

계속 사용해봐야 제것이 되겠더라구요 

 

우선 클래스는 아래와 같이 정의 합니다.

class 클래스이름:
    def 메서드(self):
        명령어 블럭

프로그래밍의 반은 이름 정하라기라고 했는데 

class에서도 이름 정하고 : 으로 막고 아래 함수 정의 하듯 진행하면 됩니다.

특히 메서드 작성 방법은 함수랑 같습니다. 

그런데 첫 번째 매개변수는 무조건 self를 사용해야 한다고 합니다. 

왜 인지 이유가 궁금했는데 이것은 클래스를 많이 사용하다 보면 알게 된다고 하니 

그냥 넘겼습니다. 

개발 이라는 큰 과업을 하기 위해 잘잘한것들에 너무 연연하지 않겠습니다.

 

 그럼 실제로 클래스를 하나 만들어 보면

class dino:
	def sound(self):
    	print('koooooanananang!')

위와 같은 형식으로 만듭니다. 

 

만들었으면 사용을 해야죠 

이렇게 만든 것을 사용하는 것을 보통 호출이라고 하는데 

과거에 함수는 함수명.() 으로 호출했는데 

이것도 비슷합니다. 

 

trex = dino()

우선 위에 만든 클래스를 변수에 할당해야 하는데 

이것을 trex가 dino의 인스턴스라고 합니다. 

클래스 배우다가 갑자기 인스턴스가 튀어나오는데요 

그리고 뜻밖의 행운이 주로 하는 업무에서 인스턴스랑은 조금은 다른 뉘앙스라

저는 이해하기 더 힘들었습니다. 

 

클래스를 사용하기 위해서는 반드시 인스턴스라는 것이 있어야 합니다.

클랙스가 설계도라면 그 설계도를 이용해서 만들어 결국 사용하는 것이

인스턴스이기 때문입니다. 

 

내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다. 

내 클래스도 똑같습니다. 

우리가 이름으로 불러주어 인스턴스가 되기전까지는 별볼일 없습니다.

 

아무튼 dino라는 클래스를 이용하여 저는 trex라는 인스턴스를 만들었습니다.

 

네 trex 라는 인스턴스를 만들었고 

trex.sonud() 형식을 통해 (인스턴스.매서드) 호출 하니까 

아래에 실제로 kooooooooang 하면서 정상적으로 동작하는 것이 보입니다.

 

class dino:
    def sound(self):
    print("kooooooang")

trex = dino()
trex.sound()

 

이렇듯 시작은 아직 미미하지만 그 끝은 창대하리라!!!

 

반응형