模板方式是比较常用额,且难度比较小的
什么是模板方法:
从OO的角度,我们通常使用子类实现抽象类的方式来实现的.从FP的角度而言就是一个高级函数的简单使用.我们关注的是函数的签名
源码:(在ubuntu使用笨拙的英语表达,长时间的阅读外著然而没练习写,该...)
'''Created on Feb 4, 2016 @author: Linux'''
if __name__ == '__main__':
print("Hello World!")
ingredients = "I have a apple,but you don't have"
line = '-' * 60
# Define two Template method,Actually Template only execute other method
def iter_elements(elements,action):
"""Template 1"""
elementAfter = ""
for element in elements:
elementAfter += action(element) + '\t'#Actually,action should be xxx(type)=>xxx(type)
print(elementAfter)
print(line)
# Define our Action,Like implements abstract methods in OO
def action_toLower(ele):
return ele.lower()
def action_toUpper(ele):
return ele.upper()
arrays = ingredients.split()
templates = [iter_elements(arrays,action) for action in (action_toLower,action_toUpper)]
#for template in templates:
# template()
# iter_elements(arrays,action_toLower)
Hello World!
i have a apple,but you don't have
------------------------------------------------------------
I HAVE A APPLE,BUT YOU DON'T HAVE
------------------------------------------------------------