6.python高级知识-闭包装饰器/demo02_闭包.py
| |
| |
| |
| |
| |
| print("第一种方法") |
| rate_usa = 0.7 |
| money = 100 |
| |
| print("第一种方法结束") |
| |
| |
| |
| print("第二种方法") |
| |
| |
| def count_rate(rate, money): |
| print(rate * money) |
| |
| |
| count_rate(100, 1000) |
| print("第二种方法结束") |
| |
| |
| |
| |
| print("第三种方法") |
| |
| |
| def count_rate(money, rate=0.7): |
| print(money * rate) |
| |
| |
| count_rate(100) |
| count_rate(100, 1000) |
| print("第三种方法结束") |
| |
| |
| |
| print("第四种方法") |
| rate = 100 |
| |
| |
| def count_rate(money): |
| print(money * rate) |
| |
| |
| count_rate(100) |
| print("第四种方法结束") |
| |
| |
| |
| print("第五种方法") |
| |
| |
| class CountRate(object): |
| def __init__(self, rate): |
| self.rate = rate |
| |
| def __call__(self, money): |
| print(self.rate * money) |
| |
| |
| usa = CountRate(0.7) |
| usa(200) |
| rate_jp = CountRate(1000) |
| rate_jp(1000) |
| |
| print("第五种方法结束") |
| |
| |
| |
| print("第六种方法") |
| |
| |
| def count(rate): |
| def money(money): |
| print(rate * money) |
| |
| return money |
| |
| |
| usa_rate = count(0.7) |
| usa_rate(100) |
| |
| print("第六种方法结束") |
| |
6.python高级知识-闭包装饰器/demo06_装饰器_传递任意参数.py
| |
| def set_func(func): |
| def call_fun(*args, **kwargs): |
| return func(*args, **kwargs) |
| |
| return call_fun |
| |
| |
| @set_func |
| def test(data): |
| return "test is show%s" % data |
| |
| |
| print(test(100)) |
| |
6.python高级知识-闭包装饰器/demo03_闭包_函数引用.py
| |
| def set_fun(func): |
| def call_fun(): |
| print('权限') |
| func() |
| |
| return call_fun |
| |
| |
| def test(): |
| print("test is show") |
| |
| |
| |
| |
| a = set_fun(test) |
| |
| a() |
| |
| |
6.python高级知识-闭包装饰器/demo08_类装饰器.py
| |
| class Func(object): |
| def __init__(self, func): |
| print('execute init function') |
| self.func = func |
| |
| def __call__(self, *args, **kwargs): |
| print('execute call function') |
| return self.func(*args, **kwargs) |
| |
| |
| @Func |
| def test(data): |
| return "test is show%s" % data |
| |
| |
| print(test(100)) |
| |
6.python高级知识-闭包装饰器/demo05_装饰器_传递参数.py
| |
| def set_func(func): |
| def call_fun(data): |
| func(data) |
| |
| return call_fun |
| |
| |
| @set_func |
| def test(data): |
| print("test is show%s" % str(data)) |
| |
| |
| test(100) |
| |
6.python高级知识-闭包装饰器/demo04_闭包_函数引用_语法糖_装饰器.py
| |
| |
| |
| |
| def set_fun(func): |
| def call_fun(): |
| print('权限') |
| func() |
| return call_fun |
| |
| |
| @set_fun |
| def test(): |
| print("test is show") |
| |
| |
| |
| test() |
| |
6.python高级知识-闭包装饰器/demo01_函数_引用函数_函数当做参数.py
| |
| def test(data): |
| print("test is show") |
| |
| |
| |
| test(123) |
| |
| |
| |
| ret = test |
| |
| print(ret) |
| print(test) |
| print(ret==test) |
| |
| |
| |
| ret(123) |
| |
| |
| |
| def application(func): |
| func(123) |
| |
| |
| application(ret) |
| |
6.python高级知识-闭包装饰器/demo07_多个装饰器的执行顺序.py
| |
| |
| |
| def set_func1(func): |
| print("set_fun1执行了") |
| |
| def call_fun(*args, **kwargs): |
| print("call_fun1执行了") |
| return func(*args, **kwargs) |
| |
| return call_fun |
| |
| |
| def set_func2(func): |
| print("set_fun2执行了") |
| |
| def call_fun(*args, **kwargs): |
| print("call_fun2执行了") |
| return func(*args, **kwargs) |
| |
| return call_fun |
| |
| |
| @set_func2 |
| @set_func1 |
| def test(): |
| return "test is show" |
| |
| |
| print(test()) |
| |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战