Python打印Book类对象详情时输出bound method而非预期内容问题
问题原因
你遇到的输出是方法对象本身而非方法执行结果,核心问题是调用类实例方法时未添加后缀括号()。
在Python语法规则中,直接写方法名不带括号,是引用方法对象本身,不会触发方法内部逻辑执行,因此你打印的是方法对象的默认描述信息,而非方法返回的书籍详情字符串。
修正方案
仅需修改代码最后一行的打印语句,给getBookDetails加上括号即可,修改后代码如下:
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())
修改后运行即可得到预期输出:Title: Ready Player One, Author: Cline, Ernest, Year: 2011
内容的提问来源于stack exchange,提问作者nwillows
相关产品推荐
相关产品推荐

