학생 상속 클래스


답안 제출

Points: 1
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

Person의 변수와 메서드를 상속받고 공부 기능을 추가하는 Student 클래스를 작성하시오. 이 문제에서는 메서드 오버라이딩을 사용하지 않는다.

미리 작성된 코드

다음 부모 클래스는 제출 코드 앞에 자동으로 추가된다. 부모 클래스는 제출하거나 다시 작성하지 않는다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age

작성할 클래스

다음 자식 클래스만 작성한다.

class Student(Person):
    def study(self, subject):
        # 코드를 작성하세요.
  • Person의 생성자는 이름 name과 나이 age를 저장한다.
  • get_name()은 이름을 str로 반환한다.
  • get_age()는 나이를 int로 반환한다.
  • StudentPerson을 상속한다.
  • Student는 생성자, get_name(), get_age()를 다시 작성하지 않는다.
  • study(subject)name studies subject 형식의 str을 반환한다.

클래스를 사용하는 코드

작성한 클래스들은 아래 코드와 함께 실행된다.

name = input()
age = int(input())
q = int(input())

student = Student(name, age)

for _ in range(q):
    command = input().split()

    if command[0] == "name":
        result = student.get_name()
    elif command[0] == "age":
        result = student.get_age()
    else:
        result = student.study(command[1])

    print(result)
    print(type(result))

위 코드가 정상적으로 동작하도록 작성할 자식 클래스의 정의 전체만 제출한다. 미리 작성된 부모 클래스, 입력을 받는 코드, 객체를 생성하는 코드는 제출하지 않는다.

상태만 변경하는 메서드의 반환값은 출력하지 않는다. 값을 조회하거나 계산 결과를 반환하는 메서드는 반환값과 자료형을 출력한다.

입력

첫째 줄에 이름 name, 둘째 줄에 나이 age, 셋째 줄에 명령 수 \(Q\)가 주어진다.

다음 \(Q\)개의 줄에는 name, age, study subject 중 하나가 주어진다.

  • 이름과 과목은 알파벳 대소문자로 이루어진 길이 1 이상 20 이하의 문자열이다.
  • \(1 \le age \le 100\)
  • \(1 \le Q \le 1,000\)

출력

각 명령마다 반환값과 반환값의 자료형을 출력한다.

예제 입력 1

Alice
15
3
name
age
study Math

예제 출력 1

Alice
<class 'str'>
15
<class 'int'>
Alice studies Math
<class 'str'>

예제 설명 1

Student("Alice", 15)Person의 생성자를 상속받으므로 이름 Alice와 나이 15를 저장한다. 상속받은 get_name()get_age()는 각각 Alice15를 반환한다. 새로 추가한 study("Math")Alice studies Math를 반환한다.

예제 입력 2

Bob
1
2
study English
name

예제 출력 2

Bob studies English
<class 'str'>
Bob
<class 'str'>

코멘트

현재 작성된 코멘트가 없습니다.