안녕하세요. Harry입니다.
현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.
모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.
초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/
[학습목표]
1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.
2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.
281 ~ 290
281 클래스 정의
다음 코드가 동작하도록 차 클래스를 정의하세요.
- 요구역량 : 클래스를 생성할 수 있는가?
>> car = 차(2, 1000)
>> car.바퀴
2
>> car.가격
1000
정답확인class 차:
def __init__(self,바퀴,가격):
self.바퀴 = 바퀴
self.가격 = 가격
car = 차(2,1000)
print(car.바퀴)
print(car.가격)
282 클래스 상속
차 클래스를 상속받은 자전차 클래스를 정의하세요.
- 요구역량 : 타 클래스를 상속할 수 있는가?
다른 클래스를 상속하려면, 클래스 생성 시 괄호안에 상속할 클래스 명을 작성해주어야 합니다.
class 자식클래스명(부모클래스명):
자식클래스는 부모클래스의 메서드를 활용할 수 있습니다.
정답확인
class 차:
def __init__(self,바퀴,가격):
self.바퀴 = 바퀴
self.가격 = 가격
class 자전차(차):
pass
283 클래스 상속
다음 코드가 동작하도록 자전차 클래스를 정의하세요. 단 자전차 클래스는 차 클래스를 상속받습니다.
- 요구역량 : 부모클래스의 기능을 활용하여 자식 클래스 인스턴스를 지정하여 출력할 수 있는가?
>> bicycle = 자전차(2, 100)
>> bicycle.가격
100
정답확인class 차:
def __init__(self,바퀴,가격):
self.바퀴 = 바퀴
self.가격 = 가격
class 자전차(차):
def __init__(self,바퀴,가격):
self.바퀴 = 바퀴
self.가격 = 가격
284 클래스 상속
다음 코드가 동작하도록 자전차 클래스를 정의하세요. 단 자전차 클래스는 차 클래스를 상속받습니다.
- 요구역량 : 특정 매개변수를 자식 클래스에 추가할 수 있는가?
class 자식클래스(부모클래스):
super().__init__(부모클래스에서 가져올 매개변수 들) 를 활용하면 굳이 같은 기능을 중복하여 쓰지 않고, 부모 클래스의 매개변수를 자식 클래스에서 그대로 활용할 수 있습니다.
이는 불필요한 코드의 중복을 줄여줍니다.
>> bicycle = 자전차(2, 100, "시마노")
>> bicycle.구동계
시마노
정답확인class 차:
def __init__(self,바퀴,가격):
self.바퀴 = 바퀴
self.가격 = 가격
class 자전차(차):
def __init__(self,바퀴,가격,구동계):
self.바퀴 = 바퀴
self.가격 = 가격
self.구동계 = 구동계
#답지(super()활용)
class 차:
def __init__(self, 바퀴, 가격):
self.바퀴 = 바퀴
self.가격 = 가격
class 자전차(차):
def __init__(self, 바퀴, 가격, 구동계):
super().__init__(바퀴, 가격)
#차.__init__(self, 바퀴, 가격)
self.구동계 = 구동계
285 클래스 상속
다음 코드가 동작하도록 차 클래스를 상속받는 자동차 클래스를 정의하세요.
- 클래스 내 새로운 메서드를 정의할 수 있는가?
>> car = 자동차(4, 1000)
>> car.정보()
바퀴수 4
가격 1000
정답확인
class 차:
def __init__(self, 바퀴, 가격):
self.바퀴 = 바퀴
self.가격 = 가격
class 자동차(차):
def __init__(self, 바퀴, 가격):
super().__init__(바퀴, 가격)
def 정보(self):
print("바퀴수 ", self.바퀴)
print("가격 ", self.가격)
286 부모 클래스 생성자 호출
다음 코드가 동작하도록 차 클래스를 수정하세요.
- 요구역량 : 부모클래스를 수정하여 자식클래스를 출력할 때 영향을 줄 수 있는가?
>> bicycle = 자전차(2, 100, "시마노")
>> bicycle.정보()
바퀴수 2
가격 100
정답확인class 차:
def __init__(self, 바퀴, 가격):
self.바퀴 = 바퀴
self.가격 = 가격
def 정보(self):
print("바퀴수 ", self.바퀴)
print("가격 ", self.가격)
class 자동차(차):
def __init__(self, 바퀴, 가격):
super().__init__(바퀴, 가격)
class 자전차(차):
def __init__(self, 바퀴, 가격, 구동계):
super().__init__(바퀴, 가격)
self.구동계 = 구동계
287 부모 클래스 메서드 호출
자전차의 정보() 메서드로 구동계 정보까지 출력하도록 수정해보세요.
- 자식클래스를 수정하여 출력문구를 추가할 수 있는가?
>> bicycle = 자전차(2, 100, "시마노")
>> bicycle.정보()
바퀴수 2
가격 100
구동계 시마노
정답확인class 차:
def __init__(self, 바퀴, 가격):
self.바퀴 = 바퀴
self.가격 = 가격
def 정보(self):
print("바퀴수 ", self.바퀴)
print("가격 ", self.가격)
class 자동차(차):
def __init__(self, 바퀴, 가격):
super().__init__(바퀴, 가격)
class 자전차(차):
def __init__(self, 바퀴, 가격, 구동계):
super().__init__(바퀴, 가격)
self.구동계 = 구동계
def 정보(self):
super().정보()
print("구동계 ", self.구동계)
288 메서드 오버라이딩
다음 코드의 실행 결과를 예상해보세요.
- 요구역량 : 클래스가 상속관계일 때 실행결과를 알고 있는가?
class 부모:
def 호출(self):
print("부모호출")
class 자식(부모):
def 호출(self):
print("자식호출")
나 = 자식()
나.호출()
정답확인289 생성자
다음 코드의 실행 결과를 예상해보세요.
- 요구역량 : 클래스가 상속관계일 때 실행결과를 알고 있는가?
class 부모:
def __init__(self):
print("부모생성")
class 자식(부모):
def __init__(self):
print("자식생성")
나 = 자식()
정답확인290 부모클래스 생성자 호출
다음 코드의 실행 결과를 예상해보세요.
- 요구역량 : 자식클래스가 부모클래스를 상속하고 super.__init__를 인용했을 때 인스턴스 실행 결과를 알고 있는가?
suer로 인용한 경우, 아래의 코드에서는 자식클래스 실행 -> 부모클래스 실행까지 된다.
class 부모:
def __init__(self):
print("부모생성")
class 자식(부모):
def __init__(self):
print("자식생성")
super().__init__()
나 = 자식()
정답확인'Coding Test > 초보자를 위한 파이썬 300제' 카테고리의 다른 글
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(271~280)_12.23 (0) | 2022.12.23 |
---|---|
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(261~270)_12.22 (0) | 2022.12.22 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(251~260)_12.22 (0) | 2022.12.22 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(241~250)_12.22 (0) | 2022.12.22 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(231~240)_12.21 (0) | 2022.12.21 |