多层装饰器、万能装饰器、匿名函数、匿名函数作为参数、列表推导式、集合推导式、字典推导式、生成式

多层装饰器

"""
多层装饰器器:谁离函数近 先装饰谁
"""
#定义装饰器
def zhuang1(func):
    print("
我是装饰器1")

    def inner():
        print("
刷漆")
        func()
    return inner
def zhaung2(func):
    print("
我是装饰器2")
    def inner():
        print("
铺地板")
        func()
    return inner


#
定义一个被装饰的函数
@zhaung2
@zhuang1
def house():
    print("
毛坯房")
house()
None

 

万能装饰器

# 万能装饰器  当 被装饰的函数,参数为多值参数的时候,可以使用这种形式
# 万能装饰器 也可以用来装饰普通的函数
# 定义装饰器
def set_func(func):
    def call_fun(*args, **kwargs):
        print("
添加额外功能")
        return func(*args, **kwargs)

    #
返回原先函数的返回值
   
return call_fun


#
被装饰的函数
@set_func
def test(*args, **kwargs):
    print(args)  #
元组   (1, 2, 3, 4, 5, "a", "b", "c",)
    print(kwargs)  #
字典 {"num":2}
    print("tdsjasjflasj")

var = test(1, 2, 3, 4, 5, "a", "b", "c", num=2)
print(var)

 

普通装饰器

def set_func(func):
    def call_fun(*args, **kwargs):
        print("
添加额外功能")
        return func(*args, **kwargs)

    #
返回原先函数的返回值
   
return call_fun
@set_func  #
糖衣
def man():
    print("
好好上班!")
man()

 

匿名函数: 简化函数定义

不再使用def来定义函数 而是使用lambda

格式:lambda 参数1参数2...:运算

def func_name():
    pass

#
可以使用匿名函数的方式来定义函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值