
🇶 클래스와 인스턴스에 대해 설명해주세요.
클래스와 인스턴스는 객체를 만들어내는 틀, 그리고 그 틀에 따라 만들어진 객체를 일컫는 말이다. 여기서는 먼저 클래스와 인스턴스를 설명하기 위해 객체, 속성, 행동에 대해 설명하고 클래스와 인스턴스에 대해서 설명하려고 한다.
객체는 데이터와 그 데이터를 활용한 함수들을 묶어서 저장해 놓을 수 있는 것을 말한다. 여기서는 데이터를 속성, 그리고 함수를 행동이라고 지칭한다.
클래스는 객체가 가지는 속성과 메소드를 정의하는 틀이다.
클래스를 통해 그 속성과 메소드를 가진 객체들을 생성할 수 있는데 이 객체들을 인스턴스라고 한다.
🇶 정적 메소드는 무엇이고, 어떻게 호출하나요?
정적 메소드는 클래스에 속하지만 인스턴스에 종속되지 않는 메소드이다.
그렇다면 클래스에 속하지만 인스턴스에 종속되지 않는다는 말의 의미는 무엇일까?
클래스와 관련이 있어서 클래스 레벨에서 직접 호출할 수 있는 메소드이지만, 인스턴스나 클래스에서 받는 값이 필요하지 않은 메소드이다.
예컨대, 로그인 클래스가 있다고 해보자. 이 로그인 클래스는 하나의 객체에 user name, email, password등을 저장한다. 그런데 여기에 email이 제대로 된 형식인지를 확인하는 메소드를 넣고 싶을 때, 이 메소드는 인스턴스나 클래스 값이 필요하지 않다. 이것이 정적 메소드이다.
정적 메소드는 @를 사용하여 표기해준다.
@staticmethod라고 표기해주고 아래에 메소드의 내용을 작성해준다.
@staticmethod
def valid_email(email):
return "@" in email
인스턴스의 속성에 접근할 필요가 없기 때문에 인수로 self를 받지 않는다. 그리고 클래스의 이름을 통해 직접 호출을 한다.