본문 바로가기
Coding/초보자를 위한 파이썬 300제

초보자를 위한 파이썬 300제 // 260 에러의 원인

by 포스트it 2021. 3. 28.
반응형

 

문제

아래와 같은 에러가 발생한 원인에 대해 설명하세요.

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
반응형

댓글