Menu
Coddy logo textTech

클래스 vs 객체

Coddy Python 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 64개 중 3번째.

클래스와 객체는 서로 다른 목적을 수행합니다. 클래스는 청사진이며, 객체는 그 청사진으로부터 만드는 것입니다.

다음은 클래스의 예시입니다:

class Dog:
	# 모든 개들이 공유함
    species = "Canis familiaris"

이제 클래스 이름인 Dog를 사용하여 Dog.species와 같이 클래스 속성에 직접 접근할 수 있습니다:

print(f"Class species: {Dog.species}")
# Class species: Canis familiaris

이것은 특정 객체가 아니라 클래스 자체에서 데이터에 접근합니다.

이제 객체에서 어떻게 작동하는지 살펴봅시다. Dog 클래스에서 객체를 생성합니다:

dog1 = Dog()
dog2 = Dog()

객체는 클래스가 가질 수 없는 개별 속성을 가질 수 있습니다:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon" 
dog2.breed = "Shu'ali"

클래스와 객체가 무엇을 할 수 있는지 비교해 보세요:

print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")

출력:

Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris

주요 차이점: 클래스 Dog은 모든 개들이 공통적으로 가지는 것을 정의하며, 객체 dog1dog2는 고유한 속성을 가진 구체적이고 개별적인 개들을 나타냅니다.

challenge icon

챌린지

쉬움

Student 클래스와 두 개의 학생 객체를 생성하도록 코드를 완성하세요. 각 학생에게 서로 다른 이름과 성적을 추가하세요.

  • student.py: Student 클래스를 정의하는 곳입니다.
  • driver.py: Student 클래스를 임포트하여 사용하는 메인 실행 파일입니다:

    Student 클래스와 두 개의 학생 객체를 생성하도록 코드를 완성하세요. 각 학생에게 서로 다른 이름과 성적을 추가하세요.

    student1의 이름은 "Alice"이고 성적은 "A"입니다.

    student2의 이름은 "Bob"이고 성적은 "B"입니다.

직접 해보기

# Student 클래스 가져오기
from student import Student

# TODO: 두 개의 학생 객체 생성


# TODO: student1에 속성 추가


# TODO: student2에 속성 추가


# 학생 정보 출력
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Object Oriented Programming의 모든 레슨