列表作为Python类变量

时间:2014-03-22 15:53:53

标签: python

我想要一个类“Library”,它有一个类变量“books”,它是库中所有书籍的列表。所以课程可以开始

class Library:
    books = []

现在我想在我的收藏中添加一本书,但我找不到任何语法 这样做。我脑子里的模型就像是

def addBook(self, book):
    books.append(book)

我希望用类似

之类的主程序调用
lib = Library()
b = Book(author, title)
lib.addBook(b)

但是,我无法找到任何方法来做到这一点。我总是在“追加”中出错,我尝试将该书添加到列表中。

3 个答案:

答案 0 :(得分:5)

您应该将books声明为实例变量,而不是类变量

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

    def addBook(self, book):
        self.books.append(book)

因此您可以创建Library实例

lib = Library()
b = Book(...)
lib.addBook(b)

注意:

  • 有关self的详细信息,请参阅此post
  • 这假设您的Book课程已正确实施。

答案 1 :(得分:0)

查看此example以获取初始化和设置器:

class Library:
    def __init__(self):
        self.books = []
    def add(self, x):
        self.books.append(x)

答案 2 :(得分:0)

class Library():
    def __init__(self):
        self.books = []
    def addBook(self, book):
        self.books.append(book)
相关问题