객체 지향 프로그래밍이란?객체를 만드는 법클래스 메소드 II

Q

클래스 메소드의 필요성

조회 1217

좋아요 6

2021년 5월 14일

A
2개의 답변이 있어요
2021년 5월 15일

댓글 2

2021년 5월 16일
답변 감사합니다. 그런데 아래와 같이 호출해도 오류 없이 잘 되는데요.
보통 클래스 메소드를 호출할 때 "인스턴스.클래스메소드" 이런 식의 호출을 사용하나요? 그리고 그래서 오류가 난다고 말씀하시는 건가요?

class User:
count = 0

def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password

User.count += 1

def user_number():
print(f"총 유저 수 : {User.count}")

User.user_number()
2021년 5월 16일
저기서 use_number()은 인스턴스 메소드로 분류할 수 있는데요, 괄호 안에 아무것도 쓰지 않았지만 저 함수를 호출할 때는 자동으로 인스턴스 변수를 첫 번째 파라미터로 집어넣거든요. 그래서 파라미터가 없는 게 아니라 self라는 파라미터를 정의할 때 꼭 써줘야 오류가 나지 않는다는 말입니다. 클래스 메소드도 마찬가지로 cls를 정의할 때 써줘야 하는 거고요.
2021년 5월 15일

댓글 2

2021년 5월 16일
답변 감사합니다. 인스턴스로 클래스 메소드를 호출할 수 있기 때문에 필요하다고 보면 될까요??
아직 어떤 경우에 쓰이는지 감이 안잡히네요. 수업을 더 진행하고 다시 복습해보겠습니다~
2021년 5월 23일
인스턴스로 클래스 메소드를 사실 부를 일은 많진 않은 것 같습니다만 가능은 합니다. 보통 클래스 메소드는 어떤 클래스로 생성된 모든 인스턴스에게 공통된 값을 적용할 때 사용하는 거라 인스턴스를 통하기 보다는 클래스명.클래스메소드 와 같이 사용합니다.

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇