반응형
문제
아래와 같은 에러가 발생한 원인에 대해 설명하세요.
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가 안들어 가서 에러가 났다.
정답
class OMG :
def print() :
print("Oh my god")
mystock = OMG()
mystock.print() # OMG.print(mystock)
파이썬에서 클래스 객체를 생성할 때 만들어진 객체가
메서드를 호출 할 때 객체 자기 자신이 인자로 들어가기 때문입니다.
그래서 첫 번째 인자인 self가 들어가지 않으면 에러가 난다.
TypeError: print() takes 0 positional arguments but 1 was given
이 에러가 나면 self가 잘들어 가있는지 확인해보자 !
728x90
반응형
'Coding > 초보자를 위한 파이썬 300제' 카테고리의 다른 글
초보자를 위한 파이썬 300제 // 262 생성자 (0) | 2021.03.28 |
---|---|
초보자를 위한 파이썬 300제 // 261 Stock 클래스 생성 (0) | 2021.03.28 |
초보자를 위한 파이썬 300제 // 259 클래스 소멸자 (0) | 2021.03.27 |
초보자를 위한 파이썬 300제 // 258 클래스 메소드 - 2 (0) | 2021.03.27 |
초보자를 위한 파이썬 300제 // 257 클래스 메소드 - 1 (0) | 2021.03.25 |
댓글