Error code 모음/4. Python errors

python error L “TypeError: __str__ returned non-string” but still prints to output?

쟈누이 2020. 3. 7. 18:28
반응형

__str__ 는 특수 메서드 중 하나입니다.

 

class Element():
    def __init__(self, name, symbol, number):
        self.name = name
        self.symbol = symbol
        self.number = number
        
    def __str__(self):
        print("name:{0}    symbole:{1}    number:{2}".format(self.name, self.symbol, self.number))

특수 메서드는 print 가 아닌 return  으로 값을 받아줘야 에러없이 출력이 되는데

위 에어는 print( ) 로 값을 받아서 생긴 에러였네요

 

print( ) --> return 으로 해야합니다.

class Element():
    def __init__(self, name, symbol, number):
        self.name = name
        self.symbol = symbol
        self.number = number
        
    def __str__(self):
        return "name:{0}    symbole:{1}    number:{2}".format(self.name, self.symbol, self.number)

 

아래 stakoverflow 에서 이유를 확인할 수 있습니다.

https://stackoverflow.com/questions/11871221/python-typeerror-str-returned-non-string-but-still-prints-to-output

 

Python: "TypeError: __str__ returned non-string" but still prints to output?

I have this piece of code which creates a new note..WHen I try to print I get the following error even though it prints the output Error: C:\Python27\Basics\OOP\formytesting>python notebook.py ...

stackoverflow.com

특수 메서드에 대해서 확인하려면 아래 링크를 참고해주세요

https://wikidocs.net/89

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

반응형