首页 > 编程语言 >Python: Template Method Pattern

Python: Template Method Pattern

时间:2022-10-26 22:55:12浏览次数:50  
标签:function get Python Pattern text GeovinDuTemplate data Method def

GeovinDuTemplate.py

# 模板方法模式 Template Method  Pattern

def get_text():
        return "text 文件"

        """ method to get the xml version of file"""

def get_xml():
        return "xml 文件"

        """ method to get the pdf version of file"""


def get_pdf():
        return "pdf 文件"


        """method to get the csv version of file"""


def get_csv():
        return "csv 文件"


        """method used to convert the data into text format"""


def convert_to_text(data):
        print("[CONVERT]")
        return "{} 转为 text".format(data)


        """method used to save the data"""


def saver():
        print("[SAVE]")


        """helper function named as template_function"""


def template_function(getter, converter=False, to_save=False):
        """input data from getter"""
        data = getter()
        print("得到为: `{}`".format(data))

        if len(data) <= 3 and converter:
            data = converter(data)
        else:
             print("跳过转换")

        """saves the data only if user want to save it"""
        if to_save:
             saver()
             print("`{}` 进行处理中".format(data))

  

main.py 调用:

# 模板方法模式 Template Method  Pattern
GeovinDuTemplate.template_function(GeovinDuTemplate.get_text, to_save=True)

GeovinDuTemplate.template_function(GeovinDuTemplate.get_pdf, converter=GeovinDuTemplate.convert_to_text())

GeovinDuTemplate.template_function(GeovinDuTemplate.get_csv, to_save=True)

GeovinDuTemplate.template_function(GeovinDuTemplate.get_xml, to_save=True)

  

输出:

得到为: `text 文件`
跳过转换
[SAVE]
`text 文件` 进行处理中

  

 

标签:function,get,Python,Pattern,text,GeovinDuTemplate,data,Method,def
From: https://www.cnblogs.com/geovindu/p/16830484.html

相关文章

  • 我的爱情与Python不得不说的故事
    最近,沉迷于辩论比赛,有最近有场辩论赛因为一句话出圈了:为什么是坠入爱河而不是跳入爱河呢?因为爱本身是自由意志的沉沦。这让我想起来我当时坠入爱河的时候,作为人家印象里呆板......
  • 学习python-Day80
    今日学习内容一、表单控制二、购物车案例三、v-model进阶(了解)四、vue生命周期五、与后端交互ajaz六、计算属性七、侦听属性......
  • Python进阶篇04-面向对象编程
    面向对象编程面向对象编程和面向过程编程的区别:类和实例类:抽象的、用于创建实例的基础模板,类里面可以定义这个类所拥有的基础的属性。实例:根据类而创建的具体的对象,实......
  • python基础之模块
    第三方模块的下载与使用第三方模块:别人写的模块一般情况下功能特别强大想使用第三方模块必须先下载后面才可以反复使用方式1:命令行借助于pip工具pip......
  • OpenCV-Python learning-9.图像阈值处理
    你也可以​​iframe外链​​查看。本节内容包括:常用阈值方法自适应阈值Otsu(大津法)自适应阈值​​github地址​​......
  • OpenCV-Python learning-8.颜色空间
    你也可以​​iframe外链​​查看。本节内容包括:改变色彩空间:cvtColor使用HSV对象跟踪练习......
  • python sklearn中的KNN
    代码fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifierimportnumpyasnpiris=dat......
  • Python调用matlab函数
    参考文章:安装用于Python的MATLAB引擎API环境:MATLABR2022a、Anaconda、python3.9检验配置检查Python版本是否与Matlab版本相匹配安装API打开matlab在命令行中输入......
  • python的一些运算符
    #1.算术运算符print('1.算术运算符')#1.1+求和a=10b=20c=a+bprint(c)print('a+b={}'.format(c))print('a+b=%i'%c)print(f'a+b={c}')#1.2-求......
  • python模块之requents模块及excel操作模块openpyxl
    第三方模块的下载与使用第三方模块:别人写的模块一般情况下功能都特别强大我们如果想使用第三方模块第一次必须先下载后面才可以反复使用(等同于内置模块)下载......