개발/(1) 초위파(Python) 300제 풀이

초보자를 위한 파이썬(Python) 300제 풀이 (256, 257, 258, 259, 260)

생각외로깔끔함 2022. 12. 15. 23:02
728x90
반응형

 

초보자를 위한 파이썬(Python) 300제 풀이

 

 

 

256. 255번 문제에서 생성한 인스턴스의 이름, 나이, 성별을 출력하세요. 인스턴스 변수에 접근하여 값을 출력하면 됩니다.

이름: 조아름, 나이: 25, 성별: 여자
>>> areum.age
25

 

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

areum = Human("아름", 25, "여자")
print(areum.age)

 

257. 사람(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(f"이름: {self.name} 나이: {self.age} 성별: {self.sex}")

areum = Human("아름", 25, "여자")
areum.who()
  • class 안에 시작과 동시에 설정되는 "__init__" 함수와 호출해야 하는 who 메서드를 설정하면 됩니다.

 

258. 사람(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("이름: {} 나이: {} 성별: {}".format(self.name, self.age, self.sex))

    def setInfo(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex


areum = Human("모름", 0, "모름")
areum.setInfo("아름", 25, "여자")
areum.who()
  • 위 문제의 답안과 같이 메서드를 추가하고 그에 맞는 기능을 설정하면 됩니다.

 

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 __del__(self):
        print("나의 죽음을 알리지마라")

    def who(self):
        print("이름: {} 나이: {} 성별: {}".format(self.name, self.age, self.sex))

    def setInfo(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

areum = Human("아름", 25, "여자")
del(areum)
  • "__del__"은 "__init__"과 같이 특별한 메서드인데, 객체를 삭제하는 기능을 가집니다.
  • 위와 같이 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
  • myStock = OMG() 입니다. 끝에 튜플이 잡혀있습니다.
  • myStock.print() 를 풀어보면 OMG().print()로 풀립니다. 클래스의 기능을 사용하려면 튜플은 메서드 뒤로 가야합니다.
  • OMG.print()로 사용하면 에러 없이 원활하게 사용가능합니다.

 

 

 

출처 = https://wikidocs.net/book/922, 초보자를 위한 파이썬 300제,

PyCharm 사용

728x90
반응형