본문 바로가기
Python/Python 고급

Python 파이썬 Class 생성 및 기초

by 베타코드 2022. 1. 17.
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬의 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_aMy_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): 없이도 각 어트리뷰트에 전달값을 설정하고 각 함수를 사용할 때마다 값을 넣어줄 수도 있습니다. 정리하자면 이렇습니다. 파이썬에서 클래스는 여러번 사용되거나 반복되는 코드를 붕어빵 틀로 만들어 놓고 필요할때마다 호출하여 사용하는 방식입니다.

 

다음 시간부터는 파이썬의 클래스에 대해서 더 심층적으로 배워보겠습니다.

반응형

댓글