欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

闭包,装饰器

时间:2023-05-24

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

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

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

闭包

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

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

def jisuan(x): def a(y): return y**x return apingfang=jisuan(2) #2是jisuan的参数变量print(pingfang(5))def jisuan(x): def b(y): return y**x return blifang=jisuan(3)print(lifang(9))

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

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

运行结果:
面积
28.274333882308138
面积
25

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。