在python类中初始化属性

时间:2019-11-27 15:52:24

标签: python class properties

我正在尝试在一个类中初始化一个属性,但是它似乎不起作用。 该类应使用另一个类。这是我编写的代码:

Book.py:

 from Paragraph import Paragraph as Paragraph

'''definitions'''
class Book:
    def __init__(self, book):
        self._paragraphs = book

    '''paragraphs property'''
    @property
    def paragraphs(self):
        return self._paragraphs

    @paragraphs.setter
    def paragraphs(self, book):
        paragraph_0 = Paragraph(book[0x0:0x100])
        paragraph_1 = Paragraph(book[0x200:0x300])
        paragraph_2 = Paragraph(book[0x300:0x400])
        paragraph_3 = Paragraph(book[0x400:0x500])
        self._paragraphs = [paragraph_0, paragraph_1, paragraph_2, paragraph_3]

Paragraph.py:

    '''definitions'''
    class Paragraph:
        def __init__(self, paragraph):
            self._paragraph = paragraph
            self._first_section = paragraph[0x0:0x10]
            self._second_section = paragraph[0x10:0x100]

        '''paragraph property'''
        @property
        def paragraph(self):
            return self._paragraph

        @paragraph.setter
        def paragraph(self, paragraph):
            self._paragraph = paragraph

        '''first_section property'''
        @property
        def first_section(self):
            return self._first_section

        @first_section.setter
        def first_section(self, first_section):
            self._first_section = first_section

        '''second_section property'''
        @property
        def second_section(self):
            return self._second_section

        @second_section.setter
        def second_section(self, second_section):
            self._second_section = second_section

然后我创建一个Book实例:

first_book = Book(some_hex_list)

我希望first_book._paragraphs中有4个段落,并且每个段落都应具有第一和第二部分属性(如在Paragraph类中一样)。相反,first_book._paragraphs仅包含原始的some_hex_list数据。

我想创建一个Book实例并启动它,因此最终我应该得到如下内容:

first_book
-->_paragraphs
----->paragraph_0
---------->_first_section
---------->_second_section
----->paragraph_1
---------->_first_section
---------->_second_section
----->paragraph_2
---------->_first_section
---------->_second_section
----->paragraph_3
---------->_first_section
---------->_second_section

谢谢!

0 个答案:

没有答案