簡體   English   中英

如何制作python對象組合(列表對象中的列表對象)

[英]how to make python objects compositions (list objects in list objects)

我有一些 3 層,它們由父 - 子 - 子子作為組合連接。 子元素依賴於上層父元素(並在父元素被銷毀時被銷毀)。 就像一本書,有好幾頁,有好幾個字。 我如何正確建模? 我想從內到外創建它們,最好的方法是將 2 個孩子作為列表添加到各自的父對象中。

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

這會是做到這一點的理想方式嗎?

組合意味着將一組對象存儲在另一個對象中。 一個非常簡單的例子:一個Book主要是一個Page的列表,一個Page主要是一個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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM