SyntaxError:非默认参数遵循默认参数; __init__相关

时间:2018-01-21 19:04:19

标签: python

这是我的最后一招。我到处搜索,但它总是与其他功能或其他东西重写。我向你保证,没有其他功能可以使用这个 init 。我是初学者。

错误是我得到这个:SyntaxError:非默认参数遵循默认参数。它指向__init__([here]self, ...etcetc)

class book:

def __init__(self, bookId, nextBook=None, name, author, ageGroup):
    self.bookId = bookId
    self.nextBook = nextBook
    self.name = str(name)
    self.author = str(author)
    self.ageGroup = str(ageGroup)

def getInfo(self):
    return self.bookdId

def setInfo(self, bookId, bookName, authorName, ageGroup):
    self.bookId = bookId
    self.name = bookName
    self.author = authorName
    self.ageGroup = ageGroup

def getNextBook(self):
    return self.nextBook

def setNextBook(self,val):
    self.nextBook = val

class bookCollection:

def __init__(self,head = None):
    self.head = head
    self.size = 0

def getSize(self):
    return self.size

def addBookToFront(self,bookId):
    newBook = book(bookId,self.head)
    self.head = newBook
    self.size+=1
    return True

def listAllBooks(self):
    curr = self.head
    while curr:
        print(curr.data)
        print(curr.name)


        curr = curr.getNextBook()

def deleteBook(self,value):
    prev = None
    curr = self.head
    while curr:
        if curr.getInfo() == value:
            if prev:
                prev.setNextBook(curr.getNextBook())
            else:
                self.head = curr.getNextBook()
            return True     
        prev = curr
        curr = curr.getNextBook()  
    return False

def addBookAtPosition(self, newBookId, position):
    counter = 1

    if position == 0:
        newBookId.setNextBook(self.head)
        self.head = newBookId

    else:
        book = self.head
        while book.getNextBook() is not None:
            if counter == position:
                newBookId.setNextBook(book.getNextBook())
                book.setNextBook(newBookId)
            book = book.getNextBook()
            counter = counter + 1

def removeBookAtPosition(self, removedBookId, position):
    counter = 1

    if position == 0:
        self.head = removedBookId.getNextBook()

    else:
        book = self.head
        while book.getNextBook() is not None:
            if counter == position - 1:
                book.setNextBook(removedBookId.getNextBook())

            book = book.getNextBook()
            counter = counter + 1

 #for reference: bookId, bookName, authorName, ageGroup
 Boy = book(1, Boy, Roald-Dahl, Teens)

1 个答案:

答案 0 :(得分:0)

它抱怨这条线:

!unturned pvp listplayers

参数nextBook有一个默认值,即None。 但是,争论名称,作者和年龄组没有默认值。 这是解释器所禁止的,或者更准确地说,是解释器的解析器部分。

要么为nextBook提供默认值,要么为name,author和ageGroup提供默认值。如果只想为nextBook设置默认值,请将其设为最后一个参数,因此在name,author和ageGroup之后。

相关问题