PYTHON - 클래스 고급 (Chapter 8-45. 클래스 변수와 메소드)

2025. 3. 17. 14:08·Python
목차
  1. 1️⃣ 클래스 변수
  2. 2️⃣ 클래스 메서드
  3. ✅ 이해도 체크리스트

📚 Chapter 8-4. 클래스 변수와 메소드

1️⃣ 클래스 변수

# 클래스 변수 만들기
class 클래스이름:
    클래스변수 = 값

# 클래스 변수에 접근하기
클래스이름.변수이름
class CreateOzStudents:

    count = 0  # 클래스 변수 정의, 모든 인스턴스가 공유하는 변수

    def __init__(self, name, python, database, django, AWS):
        self.name = name
        self.python = python
        self.database = database
        self.Django = django
        self.AWS = AWS

        CreateOzStudents.count += 1  # 인스턴스 생성 시 클래스 변수 count 증가
        print(f'{CreateOzStudents.count}번째 수강생의 정보가 추가되었습니다.')

oz_students = [
    CreateOzStudents("백현우", 4, 3, 3, 2),
    CreateOzStudents("홍해인", 4, 5, 2, 4),
    CreateOzStudents("윤은성", 3, 4, 4, 1),
    CreateOzStudents("홍수철", 2, 3, 1, 5)
]

print(f'현재 데이터가 입력된 총 수강생은 {CreateOzStudents.count}명 입니다.')

📋 출력 결과

1번째 수강생의 정보가 추가되었습니다.
2번째 수강생의 정보가 추가되었습니다.
3번째 수강생의 정보가 추가되었습니다.
4번째 수강생의 정보가 추가되었습니다.
현재 데이터가 입력된 총 수강생은 4명 입니다.

2️⃣ 클래스 메서드

class CreateOzStudents:

    student = []

    @classmethod
    def print(cls):
        print("수강생 데이터베이스 정보")
        print("이름\t총점\t평균")
        for student in cls.student:
            print(str(student))

    def __init__(self, name, python, database, django, AWS):
        self.name = name
        self.python = python
        self.database = database
        self.Django = django
        self.AWS = AWS

        CreateOzStudents.student.append(self)

    def get_sum(self):
        return self.python + self.database + self.Django + self.AWS

    def get_average(self):
        return self.get_sum() / 4

    def __str__(self):
        return f'{self.name}\t{self.get_sum()}\t{self.get_average()}'

CreateOzStudents("백현우", 4, 3, 3, 2)
CreateOzStudents("홍해인", 4, 5, 2, 4)
CreateOzStudents("윤은성", 3, 4, 4, 1)
CreateOzStudents("홍수철", 2, 3, 1, 5)

CreateOzStudents.print()

✅ 이해도 체크리스트

  1. 클래스 변수란 무엇인가요?
    • 정답: a. 클래스 내부에서 정의된 변수로, 모든 인스턴스가 공유합니다.
    • 설명: 클래스 변수는 클래스가 생성될 때 딱 한 번 만들어지며, 해당 클래스의 모든 인스턴스가 공유합니다. 따라서 특정 인스턴스가 값을 변경하면 다른 인스턴스에도 영향을 미칩니다.
  2. 클래스 변수를 정의하는 방법은 무엇인가요?
    • 정답: b. 클래스 내부에서 함수 외부에 정의합니다.
    • 설명: 클래스 변수는 클래스 정의 시, __init__ 같은 인스턴스 메서드 외부에서 선언합니다. 이는 클래스 전체에서 공통으로 사용할 변수를 설정하기 위함입니다.
  3. 클래스 변수에 접근하는 방법은 무엇인가요?
    • 정답: b. 클래스명.변수명
    • 설명: 클래스 변수는 클래스 이름을 통해 접근하거나, 인스턴스를 통해 접근할 수 있습니다. 하지만 클래스명으로 접근하는 것이 명확하고 권장됩니다.
  4. 클래스 메서드란 무엇인가요?
    • 정답: a. 클래스 내부에서 정의된 함수로, 인스턴스가 아닌 클래스 자체에 바인딩됩니다.
    • 설명: 클래스 메서드는 클래스 변수에 접근하거나, 클래스 전체의 데이터를 처리할 때 사용됩니다. 인스턴스가 아닌 클래스에서 직접 호출할 수 있습니다.
  5. 클래스 메서드를 정의하는 방법은 무엇인가요?
    • 정답: b. @classmethod 데코레이터를 사용하여 정의합니다.
    • 설명: 클래스 메서드는 첫 번째 매개변수로 cls를 사용하여, 클래스 변수나 클래스 상태에 접근할 수 있습니다. 이를 위해 @classmethod 데코레이터를 사용합니다.
  6. 클래스 메서드를 호출하는 방법은 무엇인가요?
    • 정답: b. 클래스명.메서드명()
    • 설명: 클래스 메서드는 클래스 이름을 통해 호출하는 것이 명확하며, 클래스 변수나 클래스 자체를 다루기 때문에 인스턴스를 통해 호출하는 것보다 클래스명으로 호출하는 것이 일반적입니다.

'Python' 카테고리의 다른 글

PYTHON - 클래스 고급(Chapter 8-47. 상속)  (0) 2025.03.17
PYTHON - 클래스 고급(Chapter 8-46. 프라이빗 변수)  (0) 2025.03.17
PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드)  (0) 2025.03.17
PYTHON - 클래스 고급(Chapter 8-44. 생성자와 메소드)  (0) 2025.03.17
PYTHON - 클래스 고급 (Chapter 8-43. 객체와 클래스 선언하기)  (0) 2025.03.17
  1. 1️⃣ 클래스 변수
  2. 2️⃣ 클래스 메서드
  3. ✅ 이해도 체크리스트
'Python' 카테고리의 다른 글
  • PYTHON - 클래스 고급(Chapter 8-47. 상속)
  • PYTHON - 클래스 고급(Chapter 8-46. 프라이빗 변수)
  • PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드)
  • PYTHON - 클래스 고급(Chapter 8-44. 생성자와 메소드)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (672)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (38)
      • 기술블로그-Fastapi편 (28)
      • 기술블로그-Django편 (152)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
PYTHON - 클래스 고급 (Chapter 8-45. 클래스 변수와 메소드)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.