method type
- instance method : 객체로 호출
메서드는 객체 레벨로 호출되기 때문에, 해당 메서드를 호출한 객체에만 영향을 미침
- class method(static method) : 클래스로 호출
클래스 메서드의 경우 클래스 레벨로 호출되기 때문에, 클래스 멤버 변수만 변경 가능
class Math:
@staticmethod
def add(self, a, b):
return a + b
@staticmethod
def multiply(self, a, b):
return a * b
m = Math()
m.add(10, 20)
m.multiply(10, 20)
Class Inheritance (상속)
- 기존에 정의해둔 클래스의 기능을 그대로 물려받을 수 있다.
- 기존 클래스에 기능 일부를 추가하거나, 변경하여 새로운 클래스를 정의한다.
- 코드를 재사용할 수 있게 된다.
- 상속받고자 하는 대상인 기존 클래스는 Parent, Super, Base class라고 부른다.
- 상속받는 새로운 클래스는 Child, Sub, Derived class라고 부른다.
- 의미적으로 is-a 관계를 갖는다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
print('{}은 {}를 먹습니다.'.format(self.name, food))
def sleep(self, minute):
print('{}은 {}분동안 잡니다.'.format(self.name, minute))
def work(self, minute):
print('{}은 {}분동안 일합니다.'.format(self.name, minute))
class Student(Person):
def __init__(self, name, age):
self.name = name
self.age = age
class Employee(Person):
def __init__(self, name, age):
self.name = name
self.age = age
bob = Person('Bob', 25)
bob.eat('BBQ')
bob.sleep(30)
bob.work(60)
method override
- 부모 클래스의 method를 제정의(override)
- 하위 클래스(자식 클래스)의 인스턴스로 호출 시, 재정의된 메서드가 호출됨
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
print('{}은 {}를 먹습니다.'.format(self.name, food))
def sleep(self, minute):
print('{}은 {}분동안 잡니다.'.format(self.name, minute))
def work(self, minute):
print('{}은 {}분동안 준비를 합니다.'.format(self.name, minute))
class Student(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
super().work(minute)
print('{}은 {}분동안 공부합니다.'.format(self.name, minute))
class Employee(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
super().work(minute)
print('{}은 {}분동안 업무를 합니다.'.format(self.name, minute))
bob = Student('Bob', 25)
bob.eat('BBQ')
bob.sleep(30)
bob.work(60)
special method
- __로 시작 __로 끝나는 특수 함수
- 해당 메서드들을 구현하면, 커스텀 객체에 여러가지 파이썬 내장 함수나 연산자를 적용 가능
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #딥러닝강의
반응형