안녕하세요. Harry입니다.
현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.
모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.
초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/
[학습목표]
1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.
2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.
251 ~ 260
251 클래스, 객체, 인스턴스
클래스, 객체, 인스턴스에 대해 설명해봅시다.
- 요구역량 : 각각의 정의와, 사용 이유, 차이점을 알고 있는가?
정답확인
- 인스턴스 : 클래스(class)의 객체(object)가 소프트웨어에 실체화..된 것..? 이게 무슨말...
252 클래스 정의
비어있는 사람 (Human) 클래스를 "정의" 해보세요.
- 요구역량 : 클래스를 정의할 수 있는가?
정답확인
class Human:
pass
253 인스턴스 생성
사람 (Human) 클래스의 인스턴스를 "생성" 하고 이를 areum 변수로 바인딩해보세요.
- 요구역량 : 생성한 클래스를 변수로 바인딩할 수 있는가? = 인스턴스를 생성할 수 있는가?
인스턴스라는 건 결국, 생성된 클래스를 특정 변수로 바인딩하는 것?!
정답확인
class Human:
pass
areum = Human()
254 클래스 생성자-1
사람 (Human) 클래스에 "응애응애"를 출력하는 생성자를 추가하세요.
- 요구역량 : 실제 동작하는 함수를 포함한 클래스를 생성할 수 있는가?
class 선언
def __init__(self): 작성 <----클래스 내 함수 정의 시 필수
class 내 함수 선언 시, def 함수명(self):로 작성.
>>> areum = Human()
응애응애
정답확인class Human:
def __init__(self):
print("응애응애")
areum = Human()
255 클래스 생성자-2
사람 (Human) 클래스에 (이름, 나이, 성별)을 받는 생성자를 추가하세요.
- 요구역량 : 클래스를 생성하고 클래스의 출력값을 정의할 수 있는가?
클래스,,헷갈린다,,,개념적으로 좀 더 잡을 필요가 ,,,
>>> areum = Human("아름", 25, "여자")
정답확인
class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
self.info = name,age,sex
areum = Human("아름", 25, "여자")
print(areum.info)
256 인스턴스 속성에 접근
255에서 생성한 인스턴스의 이름, 나이, 성별을 출력하세요. 인스턴스 변수에 접근하여 값을 출력하면 됩니다.
- 요구역량 : 클래스를 생성하고 클래스의 출력값을 정의할 수 있는가?
이름: 조아름, 나이: 25, 성별: 여자
인스턴스 변수에 접근하여 값을 가져오는 예
>>> areum.age
25
정답확인class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
self.info = name,age,sex
areum = Human("아름", 25, "여자")
print(areum.info)
257 클래스 메소드 - 1
사람 (Human) 클래스에서 이름, 나이, 성별을 출력하는 who() 메소드를 추가하세요.
- 클래스 내 신규 메서드를 정의하고 출력할 수 있는가?
>>> areum.who()
이름: 조아름, 나이: 25, 성별: 여자
정답확인class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print("이름: {} 나이: {} 성별: {}".format(self.name, self.age, self.sex))
areum = Human("아름", 25, "여자")
258 클래스 메소드 - 2
사람 (Human) 클래스에 (이름, 나이, 성별)을 받는 setInfo 메소드를 추가하세요.
- 요구역량 : 특정 인스턴스에 정보를 채워줄 수 있는 함수를 가진 클래스를 생성할 수 있는가?
>>> areum = Human("모름", 0, "모름")
>>> areum.setInfo("아름", 25, "여자")
정답확인class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print("이름:",self.name)
def setinfo(self,name, age, sex):
self.name = name
self.age = age
self.sex = sex
259 클래스 소멸자
사람 (human) 클래스에 "나의 죽음을 알리지 말라"를 출력하는 소멸자를 추가하세요.
- 요구역량 : 클래스 내 함수 정의서 __~~~__ 를 활용하는 특수 메서드에 대한 특징을 알고 활용할 수 있는가?
>>> areum = Human("아름", 25, "여자")
>>> del areum
나의 죽음을 알리지 말라
정답확인class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print("이름:",self.name)
def setinfo(self,name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __del__(self):
print("나의 죽음을 알리지마라")
260 에러의 원인
아래와 같은 에러가 발생한 원인에 대해 설명하세요.
class OMG :
def print() :
print("Oh my god")
>>> >>> myStock = OMG()
>>> myStock.print()
TypeError Traceback (most recent call last)
<ipython-input-233-c85c04535b22> in <module>()
----> myStock.print()
TypeError: print() takes 0 positional arguments but 1 was given
정답확인- def print(): 괄호안에 self 인자가 빠졌기 때문!
클래스,,너무 헷갈립니다..좀 더 공부를 하고 와야겠다는 생각이 듭니다. 아직 머리속에서 각 요소가 연결이 안되네요 ㅠㅠ
감사합니다.
'Coding Test > 초보자를 위한 파이썬 300제' 카테고리의 다른 글
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(271~280)_12.23 (0) | 2022.12.23 |
---|---|
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(261~270)_12.22 (0) | 2022.12.22 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(241~250)_12.22 (0) | 2022.12.22 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(231~240)_12.21 (0) | 2022.12.21 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(221~230)_12.21 (0) | 2022.12.21 |