Class

Daehwi Kim·2020년 6월 15일
0

Class란?

클래스(class)란 무언가를 계속 똑같이 찍어낼 수 있는 설계도와도 같은 것을 의미합니다.


즉 Comedian 이 class 가 됩니다. 그러나 comedian이라는 것은 개념일 뿐입니다.

Comedian의 실체 (instanace) 는 이영자, 송영이, 양세형, 유병재입니다.

이 실체(instance)들을 object(객체) 라고 합니다.

 [형식]
  class 클래스 이름(CamelCase):  # 첫글자는 대문자형식으로 ex)	LocalStorage
    .def __init__(self, , , , ,):
    .....필요한만큼 속성 제공...
    
    def 메소드1(인수):
      ...메소드 처리...
      
    def 메소드2(인수):
      ...메소드 처리...
  .
  .

예시

class Color:  # "Color" 이라는 클래스 생성
    def __init__(self, rgb, name, hex):	# init으로 속성 추가
        self.rgb       = rgb
        self.name      = name
        self.hex       = hex

    def name_color(self):  # name_color 라는 메소드 생성
        print("Color is, " + self.name)
        
        # Method와 attribute(속성)의 차이는 명사와 동사의 차이
        


red_a = Color("rgb(255,0,0)", "Red", "#FF0000")		# red_a 라는 객체 생성

red_a.name_color()


# results

>> Color is, Red
Self

class에서 "self" 는 누구를 말하는 걸까요? Class 자체를 말하는것은 아닐겁니다.

왜냐하면 앞서 보았듯이 class 자체는 공통점이 있는 부류를 가리키는 개념 이기 때문입니다.
반면에 self는 어떠한 실체를 가르키는 단어입니다. class에서 self는 class의 실체(instance)를 가리킵니다!

Color 클래스에서 self는 객체은 red_a를 가리킨다~


특징

  • init 메소드는 클래스가 실체화 될때 자동으로 호출이 된다.

  • init 메소드의 self 파라미터는 클래스가 실체화된 객체를 넘겨주어야 하며, 파이썬이 자동으로 넘겨준다.

  • init 메소드의 self 파라미터는 항상 정의되어야 있어야 하며 맨 처음 파라미터로 정의 되어야 한다 (그래야 파이썬이 알아서 넘겨줄 수 있으므로)

__init__

  • init 메소드의 이름을 자세히 보겠습니다. init 이라는 단어의 앞 뒤에 밑줄 2개가 있습니다.

  • 이렇게 앞뒤로 밑줄 2개가 있는 메소드들을 special methods라고 합니다. 이들은 특별 취급을 받습니다.

  • 그 중 init 메소드는 class가 실체화 될때 사용되는 함수 입니다.

  • 클래스에서 init 말고도 다른 메소드를 원하는 대로 추가할 수 있습니다.

Result

사실 클래스 없이도 코드를 구현할 수 있습니다.

하지만 클래스를 쓰는 이유는, 클래스를 사용하면 코드의 구조를 더 효과적으로 구현할 수 있기 때문입니다.

profile
게으른 개발자

0개의 댓글