2. 报告结构规定

作者: 数据成长之路 | 来源:发表于2018-07-26 15:29 被阅读13次

知识基础

  • Python类的基础了解

学习目标

  • 使用Python类构造文章结构

1. 文章建立

首先,我们先建立基础的文章组成构建:文档,章,节。

class Document(object):
    def __init__(self):
        # 文章标题
        self.title = None
        # 子标题
        self.subtitle = None
        # 前言
        self.foreword = None
        # 章节
        self.chapters = []

class Chapter(Document):
    def __init__(self):
        super(Chapter, self).__init__()
        # 章节内表格
        self.table = None
        # 章节内有多个图表时
        self.tables = []
        # 文本内容
        self.content = None
        # 图片
        self.image = None
        # 多个图片
        self.images = []
        
# 子章节定义可以直接使用Chapter定义,利用了Python类的继承,也为之后自定义子章节提供了留白
class Subchapter(Chapter):
    pass

2. 建立结构

document = Document()

以上我们对Document类做了基础的定义,下一步我们需要根据所要制作报告确定Document的结构,假如我们使用Example 1中的报告,报告由5个章节组成,其中最后一个总结的章节无标题,每个章节中有至多5个子章节,子章节中有单个图片和表格,章节中会有两个位置有文字

基于内容定制Chapter

以上我们对Document类做了基础的定义,下一步我们需要根据所要制作报告确定Document的结构,假如我们使用Example 1中的报告,报告由10个App的介绍组成,而每个App的内容都依次为:标题、Applogo、说明文字、说明图片、榜单变动,那么我们可以定制Chapter类的组成结构

class Chapter(Document):
    def __init__(self, subchapter_number=0):
        """
        subchapter_number : 子章节数
        """
        super(Chapter, self).__init__()
        self.content1 = None
        self.table = None
        # 图表会先做出图片形式,此处保存图片的路径
        self.image = None
        self.content2 = None
        self.rank_list_change = None
        self.subchapters= [Chapter(subchapter_number=0) for i in range(subchapter_number)]
        

为章节加入 添加图片的方法

使用self.image或者self.images保存的为图片路径,为了方便我们可以直接把matplotlib的fig直接加入chapter中,只需要设定加入规则

class Chapter(Document):
    def __init__(self, subchapter_number=0, number=''):
        """
        subchapter_number : 子章节数
        number : 章节编号,基于文档结构生成,需要是唯一的
        """
        super(Chapter, self).__init__()
        self.content1 = None
        self.table = None
        # 图表会先做出图片形式,此处保存图片的路径
        self.image = None
        self.content2 = None
        self.rank_list_change = None
        self.number = number
        self.chapters= [Chapter(subchapter_number=0, number="{}_subchapter{}".format(self.number, i)) 
                           for i in range(subchapter_number)]
        # 设定图片保存的链接
        self.image_path = './image/'
        

    def set_image(self, fig):
        image_filename = '{}{}.png'.format(self.image_path, self.number)
        fig.savefig(image_filename, dpi=160, bbox_inches='tight')
        self.image = image_filename
# 我们知道报告中有5个章节,每个章节至多有4个子章节
# 此处代码可以加入document的__init__函数中,在实例化过程中直接完成
document = Document()
for i in range(5):
    document.chapters.append(Chapter(subchapter_number=4, number="chapter{}".format(i)))
print(document.chapters[3].chapters[0].number)
chapter3_subchapter0

添加函数直接打印document文档结构

def print_structure(chapter, deep):
    if chapter.chapters:
        for subchapter in chapter.chapters:
            print('--'*deep+subchapter.number)
            print_structure(subchapter, deep+1)
    else:
        return
## print_structure(document, 0)

把此文件中做的报告结构保存入./ExampleCode/models.py
并且把print_structure方法放入Document

from ExampleCode.models import Document
document = Document()
document.print_structure(0)
chapter0
--chapter0_subchapter0
--chapter0_subchapter1
--chapter0_subchapter2
--chapter0_subchapter3
chapter1
--chapter1_subchapter0
--chapter1_subchapter1
--chapter1_subchapter2
--chapter1_subchapter3
chapter2
--chapter2_subchapter0
--chapter2_subchapter1
--chapter2_subchapter2
--chapter2_subchapter3
chapter3
--chapter3_subchapter0
--chapter3_subchapter1
--chapter3_subchapter2
--chapter3_subchapter3
chapter4
--chapter4_subchapter0
--chapter4_subchapter1
--chapter4_subchapter2
--chapter4_subchapter3

相关文章

  • 2. 报告结构规定

    知识基础 Python类的基础了解 学习目标 使用Python类构造文章结构 1. 文章建立 首先,我们先建立基础...

  • 工作分工

    启动前准备包含1.在线测评属于收费项目 2.测评报告反馈3.报告解读,这些属于不同的收费项目 按照公司规定收费。4...

  • PM体验报告模板

    xxxapp体验报告 一、产品信息 1.产品简介 2.产品定位 3.体验环境 二、产品分析 1.产品结构图 2.用...

  • 2.结构介绍

    ss

  • 2.选择结构

    注意 "="是赋值的意思 "=="是比较的意思 if(sex=="男")是错误的 if(sex.equals("男...

  • 2.目录结构

    系统启动过程: 5个阶段:内核引导 ==》 运行init ==》 系统初始化 ==》 建立终端 ==》 用户登录系...

  • 2. DPDK结构

  • 2018-08-16

    企业未能按规定申报年度报告,会有什么后果? 企业未能按规定报送年度报告的,将被纳入企业经营异常名录。企业经营异常名...

  • 2018-08-16

    企业未能按规定申报年度报告,会有什么后果? 企业未能按规定报送年度报告的,将被纳入企业经营异常名录。企业经营异常名...

  • 2018-08-20

    企业未能按规定申报年度报告,会有什么后果? 企业未能按规定报送年度报告的,将被纳入企业经营异常名录。企业经营异常名...

网友评论

    本文标题:2. 报告结构规定

    本文链接:https://www.haomeiwen.com/subject/tyebmftx.html