如何制作python对象组合(列表对象中的列表对象)

2024-07-03 02:40:47 发布

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

我有3个层,由父-子-子组成。 其中子元素依赖于上级父元素(并且在父元素被销毁时被销毁)。 就像一本书,有几页,有几句话。 如何正确建模? 我想从内到外创建它们,最好是将两个孩子作为列表添加到各自的父对象中

class Book:    
    def __init__(self, bookName):
        self.bookName = bookName
        self.listOfPageObjects = []


class Page(Book):
    pageBackColor = "white"

    def __init__(self, bookName, numberOfWords, pageNumber):
        super().__init__(bookName)
        self.numberOfWords = numberOfWords
        self.pageNumber = pageNumber
        self.listOfWordObjects = []


class Word(Page):
    wordFont = "courier"
    wordMaxLen = 100

    def __init__(self, bookName, numberOfWords, pageNumber, actualWord):
        super().__init__(bookName, numberOfWords, pageNumber)
        self.actualWord = actualWord

这是实现这一目标的理想方式吗


Tags: self元素initdefpage孩子建模class
1条回答
网友
1楼 · 发布于 2024-07-03 02:40:47

组合意味着将对象集合存储在另一个对象中。一个非常简单的例子:ABook主要是Page的列表,APage主要是Word的列表

class Book:
    def __init__(self, name, pages):
        self.book_name = name
        self.pages = pages

class Page:
    def __init__(self, number, words):
        self.number = number
        self.words = words

class Word:
    def __init__(self, word, font="Courier"):
        self.word = word
        self.font = font

pages = [Page(1, [Word("Call"), Word("me"), Word("Ishmael"), ...]),
         Page(2, [...])],
         ...
        ]

b = Book("Moby Dick", pages)

相关问题 更多 >