본문 바로가기

코딩

[Python] 클래스와 메소드 (Class, Method)

1. 클래스 (Class) & 메소드 (Method)

클래스는 여러 함수를 담고 있는 묶음이다.

이 때 클래스 내에 존재하는 함수 메소드(Method)라 부른다.

통상 클래스 이름은 대문자로 시작한다.

 

자세한 설명은 예시 먼저 투척하고 하단에 쓰도록 하겠다.

#Example : 클래스 정의
class Plus_Minus:
    def getdata(self, x1, x2):
    	self.one = x1
        self.two = x2
        return "setting complete!"
    
    def plus(self):
    	return self.one + self.two
    
    def minus(self):
    	return self.one - self.two
#Example : 객체 1개의 클래스 사용
a = Plus_Minus()

print(a.getdata(2, 3), a.plus(), a.minus())

>> setting complete! 5 -1

 

클래스는 다수의 객체(object)를 만들어낼 수 있다.

예시에서 a가 그 객체에 해당하는데, 클래스의 결과 값을 리턴받는 존재로서 Plus_Minus의 인스턴스라고 칭하기도 한다.

 

또한, 객체는 클래스를 정의하는 단계에서 self에 자동 할당되는 값이다.

따라서 클래스를 정의할 때 모든 메소드의 첫 번째 매개변수에 self를 작성해야 객체를 사용할 수 있다.

더불어 self는 자동 할당되기 때문에, 아래 식이 성립한다.

(메소드를 정의할 때 작성해 둔 매개변수 수) = (메소드를 사용할 때  입력하는 매개변수 수) + 1

 

메소드를 실행할 때에는 객체.함수명() 의 형태로 작성해야 하며, print 함수를 써야 값을 추출할 수 있다.

 

#Example : 객체 2개의 클래스 사용
b = Plus_Minus()

print(b.getdata(9, 5), b.plus(), b.minus())
print("---")
print(a.plus())

>> setting complete! 14 4

>> ---

>> 5

 

클래스의 중요한 특징 중 하나는 객체마다 고유성을 가지고 있다는 점이다.

예시를 보면 두 번째로 생성된 객체인 b로 클래스를 사용했지만,

객체 a의 값에는 변화가 없는 것을 확인할 수 있다.