1. 함수(function)과 클래스(Class)의 차이
우선 함수와 클래스의 차이를 이해하기 위해 덧셈을 지속적으로 수행할 수 있는 도구를 함수와 클래스로 각각 만든다.
1. 함수(function)로 덧셈기 구현
우선 add 함수를 파이썬으로 구현하고 result라는 전역 변수를 선언한다.
In [1]:
result = 0
In [2]:
def add(num):
global result
result += num
return result
In [3]:
print(add(3))
print(add(4))
3
7
2. 함수(function)로 두 개의 덧셈기 구현
이번에는 독립적인 두 개의 덧셈기를 만든다.
In [4]:
result1 = 0
result2 = 0
def add1(num):
global result1
result1 += num
return result1
def add2(num):
global result2
result2 += num
return result2
print(add1(3))
print(add1(4))
print(add2(3))
print(add2(7))
3
7
3
10
서로의 값에 영향을 주지않고 서로 다른 연산을 하는 것을 볼 수 있다.
3. 클래스(class)로 덧셈기 구현
이번에는 클래스로 구현해본다.
In [5]:
class Calculator:
def __init__(self):
self.result = 0
def add(self, num):
self.result += num
return self.result
클래스는 마치 틀과 같아서 클래스를 생성한 후에는 이걸로 객체라는 것을 만들 수 있다.
In [6]:
cal1 = Calculator()
cal2 = Calculator()
In [7]:
print(cal1.add(3))
print(cal1.add(4))
print(cal2.add(3))
print(cal2.add(7))
3
7
3
10
두 개의 객체는 독립적으로 연산되고 있음을 알 수 있다. 앞에서는 이렇게 독립적인 두 개의 덧셈기를 함수로 구현하려고 했다면 함수를 두 개 만들어야 했지만, 클래스라는 것을 하나 선언하고, 이 클래스를 통해 별도의 객체를 생성하자 코드가 훨씬 간결해졌다.
'Deep Learning with PyTorch > PyTorch Basic' 카테고리의 다른 글
[PyTorch Basic] 텐서 조작하기(Tensor Manipulation) 2 (0) | 2021.08.11 |
---|---|
[PyTorch Basic] 텐서 조작하기(Tensor Manipulation) 1 (0) | 2021.08.10 |
[PyTorch Basic] 파이토치 패키지의 기본 구성 (0) | 2021.08.09 |