闭包:
特点:
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