Python:类中的列表是如何工作的?

2024-10-04 01:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用Python中的类进行练习,发现了一些让我感到困惑的地方。主要领域是列出工作的方式,特别是与继承相关的工作

这是我的密码

class LibraryItem:
    def __init__(self, book_id, name):
        self.item_id = book_id
        self.name = name

class Library(LibraryItem):
    books=[]
        def all_books(books):
            bookslen = len(books)
            return bookslen

        def add_book(books):
            books.append(self.book_id)

我试图让程序做的是允许我存储图书id和名称的实例,然后可以通过子类库中的add_books方法将其添加到图书列表[]


Tags: nameselfaddid密码def地方方式
2条回答

我不认为你在这里寻找的是遗产

你有一个图书馆,这个图书馆有一个书单。保持简单

class Library:

    ## creates the library
    def __init__(self):
        self.books = []

    ## returns number of books
    def number_of_books(self):
        return len(self.books)

    ## adds a book to the list of books 
    def add_book(self, book):
       self.books.append(book)


class Book:

    ## creates your book
    def __init__(self, item_id, name):
        self.item_id = item_id
        self.name = name


localLibrary = Library() # create the library
new_book = Book(1,"Harry Potter") # create the book
localLibrary.add_book(new_book) # add the book to the library
print(localLibrary.number_of_books()) # display the number of books

## output -> 1 book in the library

我想这就是你想要实现的

class LibraryItem:
    def __init__(self, book_id, name):
        self.item_id = book_id
        self.name = name

class Library:
    def __init__(self):
        self.books = []

    def __len__(self):
        return len(self.books)

    def add_book(self, book):
        self.books.append(book.book_id)

现在,您可以创建book的实例并将其添加到库中:

book1 = LibraryItem(1,"To Kill a Mockingbird")
library = Library()
library.add_book(book1)
print(len(library ))

相关问题 更多 >