栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

闭包,装饰器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

闭包,装饰器

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号