인프런 커뮤니티 질문&답변

김대한님의 프로필 이미지

작성한 질문수

파이썬(Python) 기초부터 실무까지 part.4

객체지향 프로그래밍-2(이론-2)

2. 특수 메소드/ 3) 특수 메소드를 이용한 사례에 대해서

작성

·

143

0

class Book:
    def __init__(self, title, author, pages):
        self.title = title
        self.author = author
        self.pages = pages
    def __str__(self):
        return f"제목 : {self.title}, 저자 : {self.author}, 페이지 : {self.pages}"
    def len(self):
        return self.pages

book = Book("Data Structure", "Chun", 650)
print(book)
print(len(book))
 

위의 코드로 출력시

>>> TypeError: object of type 'Book' has no len()

위의 오류가 출력되는데

 

저의 경우에는 해당 오류 코드를

 

print(book.len())으로 변경하여 출력하였는데

이렇게 하는게 맞는지 궁금하여 글을 한번 남겨봅니다.

답변 1

0

네 맞습니다. instance 인 book의 len() 함수를 불러오려면 위와같이 작성하시면 됩니다.

 

참고로 내장함수 len()은 아래와 같이 사용하시면 됩니다.

listA = [1,2,3,4,5]
print(len(listA))

list의 길이를 나타낼떄