Untitled

mail@pastecode.io avatar
unknown
plain_text
16 days ago
1.8 kB
2
Indexable
Never
class Book:
    def __init__(self, title, author, description, series=None):
        self.title = title
        self.author = author
        self.description = description
        self.series = series  # Reference to a Series object if the book is part of a series

    def __str__(self):
        return "Book"



# Create Books
book1 = PhysicalBook("Harry Potter and the Philosopher's Stone", "J.K. Rowling", "First book of Harry Potter", "978-3-16-148410-0", harry_potter_series)
book2 = Ebook("Harry Potter and the Chamber of Secrets", "J.K. Rowling", "Second book of Harry Potter", harry_potter_series)

books= [book1, book2]

def getBookFiltered(books, title, author):
    """
    """
    ans=[]
    for book in books:
        if book.title.lower()==title.lower():
            ans.append(book)

    ans1=[]
    for book in ans:
        if book.author.lower()==author.lower():
            ans1.append(book)
    return ans1


class Condition:
    def validate(book):
        """
        """
        pass


class TitleCondition(Condition):
    def __init__(self, title):
        self.title=title

    def validate(book):
        return self.book.title.lower()==title.lower()

class AuthorCondition(Condition):
    def __init__(self, author):
        self.author=author

    def validate(book):
        return self.book.author.lower()==author.lower()


def getbookFiltered(books, listOfConditions):
    tmpList=books
    for condition in listOfConditions:
        tmp = []
        for book in tmpList:
            if condition.validate(book):
                tmp.append(book)
        tmpList=tmp
    return tmpList



conditions=[AuthorCondition("JKRowling"), TitleCondition("someTitle")]
getbookFiltered(books, conditions)

getbookFiltered(books, "JKRowling", "someTitle", "isbn")
Leave a Comment