Home > front end >  Not Printing object details
Not Printing object details

Time:11-07

Trying to print Book object's details from method getBookDetails. The output I want is "Ready Player One", "Cline, Ernest", 2011, but get message saying "<bound method Book.getBookDetails of <main.Book object at 0x105b54d00>>"

class Book():

    def __init__(self, title = "", author = "", year = None):
        self.title = title
        self.author = author
        self.year = year

    def getTitle(self):
        return self.title

    def getAuthor(self):
        return self.author

    def getYear(self):
        return self.year

    def getBookDetails(self):
        string = ("Title: {}, Author: {}, Year: {}"\
        .format(self.title, self.author, self.year))
        return string
    
b = Book("Ready Player One", "Cline, Ernest", 2011)
print(b.getBookDetails)

CodePudding user response:

Missing parenthesis

  • To call a function you must have () parenthesis at the end.
class Book():

    def __init__(self, title = "", author = "", year = None):
        self.title = title
        self.author = author
        self.year = year

    def getTitle(self):
        return self.title

    def getAuthor(self):
        return self.author

    def getYear(self):
        return self.year

    def getBookDetails(self):
        string = ("Title: {}, Author: {}, Year: {}"\
        .format(self.title, self.author, self.year))
        return string
    
b = Book("Ready Player One", "Cline, Ernest", 2011)
print(b.getBookDetails())

Outputs:-

>>> print(b.getBookDetails)
<bound method Book.getBookDetails of <__main__.Book object at 0x0000015E9B6F8130>>
>>> print(b.getBookDetails())
Title: Ready Player One, Author: Cline, Ernest, Year: 2011
  • Related