클래스 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은 모든 개들이 공통적으로 가지는 것을 정의하며, 객체 dog1 및 dog2는 고유한 속성을 가진 구체적이고 개별적인 개들을 나타냅니다.
챌린지
쉬움Student 클래스와 두 개의 학생 객체를 생성하도록 코드를 완성하세요. 각 학생에게 서로 다른 이름과 성적을 추가하세요.
student.py:Student클래스를 정의하는 곳입니다.driver.py: Student 클래스를 임포트하여 사용하는 메인 실행 파일입니다:Student클래스와 두 개의 학생 객체를 생성하도록 코드를 완성하세요. 각 학생에게 서로 다른 이름과 성적을 추가하세요.student1의 이름은
"Alice"이고 성적은"A"입니다.student2의 이름은
"Bob"이고 성적은"B"입니다.
치트 시트
클래스는 공유된 속성과 동작을 정의하는 청사진입니다. 객체는 개별적인 속성을 가지고 해당 클래스에서 생성된 인스턴스입니다.
클래스 정의하기:
class Dog:
# 클래스 속성 - 모든 인스턴스가 공유함
species = "Canis familiaris"클래스 속성에 직접 접근하기:
print(Dog.species) # Canis familiaris클래스에서 객체 생성하기:
dog1 = Dog()
dog2 = Dog()객체에 개별 속성 추가하기:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"객체는 개별 속성과 클래스 속성 모두에 접근할 수 있습니다:
print(f"{dog1.name} is a {dog1.breed}") # 개별 속성
print(f"Species: {Dog.species}") # 클래스 속성직접 해보기
# 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}")이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.