mehtod
- 멤버함수라고도 하며, 해당 클래스의 object에서만 호출가능
- 메쏘드는 객체 레벨에서 호출되며, 해당 객체의 속성에 대한 연산을 행함
- {obj}.{method}() 형태로 호출됨
class Counter:
def __init__(self):
self.num=0 # Counter type은 항상 num이라는 데이터를 가지며 0으로 초기화된다.
c1 = Counter()
print(c1.num)
>> 0
class Counter:
def __init__(self):
self.num=0 # Counter type은 항상 num이라는 데이터를 가지며 0으로 초기화된다.
def print_current_value(self):
print('현재 값은 :', self.num)
c1 = Counter()
c1.print_current_value()
>> 0
Counter 클래스 내의 메쏘드를 통해 호출할 수 있다.
class Counter:
def __init__(self):
self.num=0 # Counter type은 항상 num이라는 데이터를 가지며 0으로 초기화된다.
def increase(self):
self.num += 1
def reset(self):
self.num = 0
def print_current_value(self):
print('현재 값은 :', self.num)
c1 = Counter()
c1.print_current_value()
c1.increase()
c1.increase()
c1.print_current_value()
c1.reset()
c1.print_current_value()
>> 현재 값은 : 0
>> 현재 값은 : 2
>> 현재 값은 : 0
increase 메쏘드와 reset 메쏘드를 만들어 보았다.
decorator (데코레이터)
class Math:
def add(self, a, b):
return a+b:
def multiply(self, a, b):
return a*b
a = Math()
m.add(1,2)
m.multiply(2,3)
class Math:
@staticmethod
def add(self, a, b):
return a+b:
@staticmethod
def multiply(self, a, b):
return a*b
# a = Math() 객체를 생성하지 않아도 된다.
# m.add(1,2)
# m.multiply(2,3)
Math.add(1,2)
Math.multiply(2,3)
내가 내부적으로 유지할 데이터가 없고 전달될 데이터에 대해서만 반환하는 경우에는 @staticmethod 로 표시해준다.
그러면 객체를 따로 생성하지 않아도 된다.
함수 호출이 클래스 레벨로 이루어진다.
'📌 Python' 카테고리의 다른 글
Python - method override, super (0) | 2021.01.20 |
---|---|
Python - inheritance(상속) (0) | 2021.01.20 |
Python - __init__ (0) | 2021.01.20 |
Python - class, object (0) | 2021.01.20 |
Python - import (0) | 2021.01.19 |