【问题标题】:Python class and book counter [closed]Python课程和书籍柜台[关闭]
【发布时间】:2021-05-10 09:22:23
【问题描述】:
我正在写一个名为“书”的课程。每本书都应该有一个标题和一个作者。班级应该能够自动计算书籍的数量。
我被困在这里 - 刚开始 - 并且不知道如何让这种方法计算书籍。
class Book:
author: str = ""
title: str = ""
def __init__(self, author, title):
self.author = author
self.title = title
..有什么建议吗?
【问题讨论】:
标签:
python
class
methods
pycharm
counting
【解决方案1】:
基本上正如用户IlayG01所说,您可以在类中实现一个计数器,或者使用一个超类来计算创建的书籍。
class Book:
author: str = ""
title: str = ""
counter = 0
def __init__(self, author, title):
self.author = author
self.title = title
Book.counter += 1
我认为这会起作用,但更“深刻”的答案是拥有一个超类“Books”,您可以在其中创建“Book”的实例并在那里计数。
编辑:我在网上查了一下,找到了一个类似的解决方案,它是一个“员工”类。
这里是website's 答案:
class Employee:
'Common base class for all employees'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
【解决方案2】:
我是这样设计的,书架里有书:
class Book:
def __init__(self, author, title):
self.author = author
self.title = title
class Shelf:
def __init__(self, books=[]):
self.books = books
def add_book(self,book):
self.books.append(book)
def count_books(self):
return len(self.books)
Book_one = Book('Me1','Test1')
Book_two = Book('Me2','Test2')
Book_three = Book('Me3','Test3')
shelf = Shelf()
shelf.add_book(Book_one)
shelf.add_book(Book_two)
shelf.add_book(Book_three)
print(f'You have {shelf.count_books()} in your shelf')