我正在用Python編寫一個類,用於跟蹤各種書籍。有三個實例變量:author
,title
和book_id
。有四種方法:用Python編寫書籍類
__init__(self, author, title, book_id)
:(構造函數,實例化所有實例變量。)__str__(self)
:返回字符串表示這種格式Book("Homer", "The Odyssey", 12345)
__repr__(self)
:返回相同的字符串表示__str__
__eq__(self, other)
通過檢查所有三個實例變量是否相同來確定書本身是否與另一本書相同。返回bool
。
我已經到了路障。這是我迄今獲得的良好開局的代碼。出於某種原因,我不斷收到__repr__
方法返回的縮進錯誤。如果熟悉寫作課的人有任何建議,我會很感激。
class Book:
def __init__(self, author, title, book_id):
self.author = author
self.title = title
self.book_id = book_id
def __str__(self):
return 'Book(author, title, book_id)'
def __repr__(self):
return 'Book(author, title, book_id)'
def __eq__(self, other):
#Not sure if this is the right approach
for title in Book:
for title in Book:
if title == title:
if author == author:
if book_id == book_id:
return True
您已經混合了製表符和空格以進行縮進。別那樣做。 (你的'__eq__'也是完全錯誤的,但是製表符和空格是導致你所問的問題的原因。) – user2357112
另外,你的'__str__'是多餘的,你的'__str__'和__repr__'都返回文字字符串「Book(author,title,book_id)」'而不是替換你想要的屬性值。 – user2357112
一本書不可迭代。 Book'中的標題是不正確的。你需要引用'self.title ==其他.title和self.author == other.author',例如 –