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