최대 1 분 소요

Class

파이썬에서의 모든 것은 객체라고 볼 수 있다. 이제까지 사용했던 str의 instance, pandas.DataFrame(), 또는 사용자 지정 함수 전부 다 객체로 간주한다. 그래서 return func같은 것으로 함수를 객체로 간주하여 반환하고, 이 반환된 값을 ()로 실행할 수도 있던 것 경험했음. 클래스를 만들면 클래스의 instance를 이용할 수 있다. 각각 하나의 instance가 객체.

객체: 값과 행동을 묶는다. 예를 들어 list:

x = [1,2,3] # 객체. 값들이 있음. 각 element를 attribute라고 할 수 있다.
x.append(4) # 행동으로 4를 element로 추가함. method에 해당.

instance, attribute, method

클래스는 정의를 하고 사용하기 위해서 instance를 만든다. str, list는 내장. '', [] 등으로 instance를 만들 수 있다. 내가 만든 instance는 instance_1 = my_class() 등으로 정의한다.

instance_1.attribute_1으로 attribute을 볼 수 있고, instance_1.method_1()으로 method 실행 가능.

클래스 정의 및 instance / method

class Dog:
  def __init__(self, breed, age): # instance를 어떻게 만들지
    self.breed = breed
    self.age = age

  def sound(self, sound): # method
    print(self.breed, 'barks', sound*5)

  def how_old(self):
    print(f'{self.breed}{self.age}살')

maltese = Dog('maltese', 3)
maltese.sound('왕')

상속

parent class의 내용을 받아 child class가 사용할 수 있고, 일부를 변경할 수도 있다.

class Cat(Dog):
  def __init__(self, breed, age, whiskers):
    super().__init__(breed, age)
    self.whiskers = whiskers

  def sound(self, sound):
    super().sound(sound)
    print('고양이는 짖지 않음')
    print(self.breed, 'meows', sound*5)

rb = Cat('Russian Blue', 2, 5)
rb.sound('애용')

댓글남기기