Python - 문제 미리보기

문제 2048

hard
다음 코드에서 빈칸을 올바르게 채워 OOP의 기본 개념을 구현해주세요:
______ Animal:
    def __init__(self, name, species):
        self.______ = name
        self.species = species
    
    def make_sound(self):
        return f"{self.name}이(가) 소리를 냅니다."

# 객체 생성
dog = ______("멍멍이", "강아지")
cat = Animal("야옹이", "고양이")

print(dog.______)          # "멍멍이" 출력
print(cat.make_sound())    # "야옹이이(가) 소리를 냅니다." 출력
A. `def` / `name` / `Animal` / `species`
B. `class` / `name` / `Animal` / `name`
C. `function` / `self` / `Dog` / `make_sound`
D. `object` / `species` / `Animal` / `sound`

정답: B



Python 클래스 기본 문법:

1. 클래스 정의:
class Animal:  # 'class' 키워드 사용

class 키워드: 클래스를 정의할 때 사용
⦁ 클래스명: 대문자로 시작하는 것이 관례 (PascalCase)

2. 생성자 메서드 (__init__):
def __init__(self, name, species):
    self.name = name      # 인스턴스 변수 할당
    self.species = species

__init__: 객체 생성 시 자동으로 호출되는 생성자
self: 현재 인스턴스를 가리키는 참조
⦁ 인스턴스 변수: self.속성명으로 객체의 고유 데이터 저장

3. 객체 생성 (인스턴스화):
dog = Animal("멍멍이", "강아지")

⦁ 클래스명(): 새 객체 생성
⦁ 인수 전달: __init__ 메서드의 매개변수에 전달
⦁ 변수 할당: 생성된 객체를 변수에 저장

4. 속성 접근:
print(dog.name)  # "멍멍이"

⦁ 점 표기법: 객체.속성명으로 속성에 접근
⦁ 인스턴스별 독립성: 각 객체는 자신만의 속성값 보유

완성된 코드:
class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species
    
    def make_sound(self):
        return f"{self.name}이(가) 소리를 냅니다."

# 객체 생성
dog = Animal("멍멍이", "강아지")
cat = Animal("야옹이", "고양이")

print(dog.name)           # "멍멍이"
print(cat.make_sound())   # "야옹이이(가) 소리를 냅니다."

💡 학습 팁

이 문제를 포함한 Python 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.