안녕하세요 독학코딩입니다. 오늘은 파이썬의 Class
생성에 대해서 배워보겠습니다. 저는 항상 코딩에서 가장 중요한 것은 중복의 최소화라고 생각하는데, 이 점에서 Class
는 함수와 같이 많이 사용되고 또 응용해야 되는 기능입니다.
Class
는 쉽게 표현하자면 붕어빵 틀입니다. 특정 기능을 Class
라는 붕어빵 틀로 만들고 그 속을 팥으로 채울지 슈크림으로 채울지는 전달값을 통해서 정의하는 것입니다.
Python Class 기본 틀
class My_class():
i = 120
def functionA(self):
return "Hello World"
test_a = My_class()
print(test_a.i)
print(test_a.functionA())
Class
의 가장 기본적인 틀은 class 클래스 이름()
입니다. 그 밑으로는 내가 필요한 기능을 코딩해주시면 됩니다. 언듯 보기에도 함수와 거의 비슷한 모양입니다. 가장 크게 다른 점이라면 Class
는 별도의 객체.어트리뷰트
가 가능하다는 것 입니다. 무슨 말이지 정확히 이해가 안되실 겁니다.
- 위의 예제에서
My_class()
는 클래스를 의미합니다. test_a
에 클래스를 정의했으니 여기서test_a
를My_class()
의 객체라고 합니다.print(test_a.i)
에서i
를 어트리뷰트라고 합니다.
Python Class attribute
클래스를 사용하는 가장 큰 이유중에 하나가 attribute라고 생각합니다. 함수와는 다르게 Class
내에 정의된 값들을 attribute로써 호출하거나 수정할 수 있습니다.
위에 예제에서 처럼 print(test_a.i)
할 수도 있고
test_a = My_class()
print(test_a.i)
test_a.i = 150
print(test_a.i)
위와 같이 Class
내에 정의된 attribute 자체를 수정할 수도 있습니다.
Python Class 실제 사용 방법
이 전의 설명은 파이썬 Class
의 기초적인 정보였습니다. 이번에는 파이썬에서 Class
를 실제로 어떻게 사용하는지 배워보겠습니다.
class My_class():
def __init__(self, numA, numB):
self.numA = numA
self.numB = numB
def add(self):
return self.numA + self.numB
def subtract(self):
return self.numA - self.numB
def divide(self):
return self.numA / self.numB
def multiply(self):
return self.numA * self.numB
my_math = My_class(12, 3)
print(my_math.add())
print(my_math.subtract())
print(my_math.divide())
print(my_math.multiply())
위의 예제가 아마 Class
를 사용하는 가장 일반적인 방법이라고 생각됩니다. Class
안에 여러가지 함수들을 만들어 놓고my_math = My_class(12, 3)
처럼 객체를 선언한 이후에 그 객체의 어트리뷰트 즉, Class
내의 함수들을 호출하여 여러가지 기능을 사용하는 방식입니다.
여기서 def __init__(self):
은 initiation으로 클래스가 시작할때 여러 값들을 정의할 수 있는 곳 입니다. 함수 처럼 여러 개의 전달값을 만들 수 있고 self.numA = numA
같이 받은 전달값을 self.x
를 통해서 클래스 내에서 전역변수로 설정할 수 있습니다.
위와 같이 def __init__(self):
을 통해서 객체 생성때 전역변수 값을 설정할 수도 있지만 필수는 아닙니다.
class My_class():
def add(self, numA, numB):
return numA + numB
def subtract(self, numA, numB):
return numA - numB
def divide(self, numA, numB):
return numA / numB
def multiply(self, numA, numB):
return numA * numB
my_math = My_class()
print(my_math.add(12, 4))
print(my_math.subtract(23, 4))
print(my_math.divide(50, 5))
print(my_math.multiply(12, 3))
이렇게 def __init__(self):
없이도 각 어트리뷰트에 전달값을 설정하고 각 함수를 사용할 때마다 값을 넣어줄 수도 있습니다. 정리하자면 이렇습니다. 파이썬에서 클래스는 여러번 사용되거나 반복되는 코드를 붕어빵 틀로 만들어 놓고 필요할때마다 호출하여 사용하는 방식입니다.
다음 시간부터는 파이썬의 클래스에 대해서 더 심층적으로 배워보겠습니다.
'Python > Python 고급' 카테고리의 다른 글
Python module, 파이썬 모듈 기초 (0) | 2022.03.23 |
---|---|
Python 파이썬, Class 메서드 오버라이딩 (0) | 2022.03.22 |
Python 파이썬 Class 상속, 메소드, 인스턴스 변수 (0) | 2022.01.24 |
댓글