从入门到自闭之python三大器--装饰器
2024-09-05 15:49:04
开放封闭原则:在不修改源代码及调用方式,对功能进行额外添加就是开放封闭原则
- 开放:对代码的扩展进行开发
- 封闭:修改源代码
装饰(额外功能) 器:工具(函数)
- 普通版:
# print(time.time()) #时间戳,小数 import time
def func():
time.sleep(1)
print("这是小刚写的功能") def func():
time.sleep(1)
print("这是小红写的功能") def index():
time.sleep(2)
print("这是小明写的功能") def times(func): #func == index 函数内存地址
def foo():
start_time = time.time() #时间戳,被装饰函数执行前干的事
func() #fun == index ,后面加括号就是调用函数
print(time.time()-start_time)#被装饰函数执行后干的事
return foo index = time(index) #index== foo内存地址
index() #index() == foo ()
func = time(func)
func()
python帮咱们做的一个东西,语法糖
要将语法糖放在装饰器的函数正上方
# def warpper(f):
# def inner():
# print("111")
# f()
# print("222")
# return inner
#
# @warpper # func = warpper(func)
# def func():
# print("被装饰的函数1")
#
# @warpper # index = warpper(index)
# def index():
# print("被装饰的函数2")
#
# func()
# index() # def warpper(f):
# def inner(*args,**kwargs):
# print("被装饰函数执行前")
# ret = f(*args,**kwargs)
# print("被装饰函数执行后")
# return ret
# return inner
#
# @warpper
# def func(*args,**kwargs):
# print(f"被装饰的{args,kwargs}")
# return "我是func函数"
#
# @warpper
# def index(*args,**kwargs):
# print(11111)
#
# print(func(1,2,3,4,5,6,7,8,a=1))
最新文章
- 动态令牌-(OTP,HOTP,TOTP)-基本原理
- android 第三方登录 --- QQ
- Linux下的shell编程(三)BY 四喜三顺
- 无法连接 MKS: Login(username/password)incorrect
- spring 部分配置内容备忘
- [webkit移动开发笔记]之如何去除android上a标签产生的边框(转)
- C# winform 代码生成
- Activemq 平台搭建与C#示列
- ubuntu 命令收集
- X64相关文章
- Java实现Socket之WhoisClient
- Buffer -nodejs
- 语音控制的tab选项卡
- C++中的初始化列表中可以对那些变量或对象进行初始化
- Basic4android:多功能的Android应用软件快速开发平台
- 关于centos 7 systemctl自定义服务笔记
- CoordinatorLayout与滚动的处理
- tp5.0.7 修复getshell漏洞
- javap反汇编命令
- 投入机器学习的怀抱?先学Python吧
热门文章
- 【转载】多网卡的7种bond模式原理
- 关于多个py文件生成一个可运行exe文件(用pyinstaller)
- UE4 使用VaRest的最佳实践
- BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结
- ubuntu开启ssh服务时,报:start:Unknown job : ssh
- mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections
- centOS7安装docker遇到 [Errno 14] curl#35 - ";TCP connection reset by peer问题解决
- Express + Mongoose 极简入门
- python中的实例方法、类方法、静态方法的区别
- MQTT消息中间件Mosquitto的安装和配置