闭包,装饰器

导读:本篇文章讲解 闭包,装饰器,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

闭包:
特点:
1.函数里有函数
2.内函数一定用到外函数变量
3.返回值一定是内函数

一定记下来

#电子秤
#能够计算:
价格=(毛重-包装重量)*单价
包装重量:0.1斤
价格=(毛重-0.1)*单价
苹果:3元/斤
香蕉:5元/斤

def price(weight,unitPrice):
	return (weight-0.1)*unitPrice
apple=price(10.1,3)
print(apple)
banana=price(10.1,5)
print(banana)

闭包

def price(unitPrice):
	def computer(weight):
        	return (weight-0.1)*unitPrice
	return computer
apple=price(3)# 不执行,等价于返回值函数computer
print(apple(10.1))
banana=price(5)
print(banana(10.1))

练习:
构造一个闭包程序,能够根据需要计算平方、立方。

def jisuan(x):
    def a(y):
        return y**x
    return a
pingfang=jisuan(2) #2是jisuan的参数变量
print(pingfang(5))


def jisuan(x):
    def b(y):
        return y**x
    return b
lifang=jisuan(3)
print(lifang(9))

装饰器(修饰器):
(有时间详细讲解一下)
设计一个装饰器,能够计算圆面积、正方形面积。

import math
def jisuan(mianji):
    def kkk(*args,**kwargs):
        print("====面积====")
        x=mianji(*args,**kwargs)
        return x
    return kkk
@jisuan
def mianji1(r):
    return math.pi*r**2
@jisuan
def mianji2(d):
    return d**2
print(mianji1(3))
print(mianji2(5))

运行结果:
面积
28.274333882308138
面积
25

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61418.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!