[Weekly] 클래스, 인스턴스, 정적 메소드

Alicia Jung·2024년 7월 8일

Weekly

목록 보기
5/14

🇶 클래스와 인스턴스에 대해 설명해주세요.

🍪클래스와 인스턴스

클래스와 인스턴스는 객체를 만들어내는 틀, 그리고 그 틀에 따라 만들어진 객체를 일컫는 말이다. 여기서는 먼저 클래스와 인스턴스를 설명하기 위해 객체, 속성, 행동에 대해 설명하고 클래스와 인스턴스에 대해서 설명하려고 한다.

객체는 데이터와 그 데이터를 활용한 함수들을 묶어서 저장해 놓을 수 있는 것을 말한다. 여기서는 데이터를 속성, 그리고 함수를 행동이라고 지칭한다.

클래스는 객체가 가지는 속성과 메소드를 정의하는 틀이다.
클래스를 통해 그 속성과 메소드를 가진 객체들을 생성할 수 있는데 이 객체들을 인스턴스라고 한다.

🇶 정적 메소드는 무엇이고, 어떻게 호출하나요?

📌정적 메소드(Static Method)

정적 메소드는 클래스에 속하지만 인스턴스에 종속되지 않는 메소드이다.

그렇다면 클래스에 속하지만 인스턴스에 종속되지 않는다는 말의 의미는 무엇일까?
클래스와 관련이 있어서 클래스 레벨에서 직접 호출할 수 있는 메소드이지만, 인스턴스나 클래스에서 받는 값이 필요하지 않은 메소드이다.

예컨대, 로그인 클래스가 있다고 해보자. 이 로그인 클래스는 하나의 객체에 user name, email, password등을 저장한다. 그런데 여기에 email이 제대로 된 형식인지를 확인하는 메소드를 넣고 싶을 때, 이 메소드는 인스턴스나 클래스 값이 필요하지 않다. 이것이 정적 메소드이다.

정적 메소드는 @를 사용하여 표기해준다.
@staticmethod라고 표기해주고 아래에 메소드의 내용을 작성해준다.

@staticmethod
def valid_email(email):
	return "@" in email

인스턴스의 속성에 접근할 필요가 없기 때문에 인수로 self를 받지 않는다. 그리고 클래스의 이름을 통해 직접 호출을 한다.

profile
데이터를 잘 써먹기 위해 배우는 데이터 분석가입니다. 최근 티스토리 블로그(https://alicia03.tistory.com/)에서 주로 활동하고 있습니다.

0개의 댓글