通过闭包对一个数据 x 做“流水线操作”,三层闭包,每一层依次进行一项操作(先求绝对值,再开方,再求相反数)

来源:互联网 发布:人工智能三驾马车 编辑:程序博客网 时间:2024/06/10 05:57

闭包

#!/usr/bin/python#coding=utf-8__author__ = 'moxiaokai'#函数是一个对象,所以可以作为某个函数的返回结果def xiangfan(x):    def kaifang(x):        def jueduizhi(x):            return abs(x)           #返回绝对值        return jueduizhi(x)**0.5    #返回开方(绝对值)    return -kaifang(x)              #返回相反数(开方(绝对值))print xiangfan(-1)

装饰器

#!/usr/bin/python#coding=utf-8__author__ = 'moxiaokai'def jueduizhi(x):   #定义绝对值    return abs(x)def kaifang(F):     #定义开放    def new_F(x):        return F(x)**0.5    return new_Fdef xiangfang(F):   #定义相反数    def new_F(x):        return -F(x)    return new_Ffunc=xiangfang(kaifang(jueduizhi))  #定义装饰器print func(-4)
0 0
原创粉丝点击